Server部分的Java代码:
package com.wll.mysocket;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;




public class myServer implements Runnable{
public void run() {
try {
ServerSocket serverSocket=new ServerSocket(54321);
while(true)
{
System.out.println("接收用户连接:");
//接受客户端请求
Socket client=serverSocket.accept();
System.out.println("accept:");
try
{
//接受客户端信息
BufferedReader in=new BufferedReader(new InputStreamReader


(client.getInputStream()));
String str=in.readLine();
System.out.println("read:"+str);
//向服务器发送消息
PrintWriter out=new PrintWriter(new BufferedWriter(new


OutputStreamWriter(client.getOutputStream())),true);
out.println("Server Message:"+str);
in.close();
out.close();
}catch(Exception ex)
{
System.out.println(ex.getMessage());
ex.printStackTrace();
}
finally
{
client.close();
System.out.println("close");
}
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
public static void main(String [] args)
{
Thread desktopServerThread=new Thread(new myServer());
desktopServerThread.start();
}
}






--------------------------------------------------------------------------------


客户端用Android代码编写:




package com.wll.mysocket;
import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import android.*;
//客户端的实现
public class mySocketAct extends Activity {
private TextView text1;
private Button but1;
private EditText edit1;
private final String DEBUG_TAG="mySocketAct";




public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

text1=(TextView)findViewById(R.id.text1);
but1=(Button)findViewById(R.id.but1);
edit1=(EditText)findViewById(R.id.edit);

but1.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v) {
Socket socket=null;
String mesg=edit1.getText().toString()+"\r\n";
edit1.setText("");
try {
socket=new Socket("10.0.2.2",54321);
//向服务器发送信息
PrintWriter out=new PrintWriter(new BufferedWriter(new


OutputStreamWriter(socket.getOutputStream())),true);
out.println(mesg);

//接受服务器的信息
BufferedReader br=new BufferedReader(new InputStreamReader


(socket.getInputStream()));
String mstr=br.readLine();
if(mstr!=null)
{
text1.setText(mstr);
}else
{
text1.setText("数据错误");
}
out.close();
br.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}catch(Exception e)
{
Log.e(DEBUG_TAG,e.toString());
}
}
});
}
}






--------------------------------------------------------------------------------


其中很重要的一个问题是:




电脑与模拟器之间的通信问题,必须在AndroidManifest.xml中编写:
<uses-permission android:name="android.permission.INTERNET" />

更多相关文章

  1. Android 定时到服务器取数据并刷新
  2. Android客户端自动更新代码
  3. android 客户端 smtp 协议发送数据
  4. Android手机访问web服务器(post请求)
  5. 客户端性能测试
  6. Android使用的MQTT客户端
  7. 开源中国WP7客户端全面开源,包括iPhone客户端与Android
  8. android 获取sim卡运营商信息
  9. 一步步教你为网站开发Android客户端

随机推荐

  1. Android 使用ContentProvider(内容提供者)
  2. Android批量添加通话记录
  3. android去掉 radio 或 checkBox 的默认图
  4. Android(安卓)Intent 用法全面总结
  5. Android root 详解
  6. TextInputEditText 替换EditText解决警告
  7. Android群英传知识点回顾——第五章:Andro
  8. Android中进程间通讯 AIDL
  9. Android新架构组件之Navigation
  10. Android学习记录——1.Android Studio