线上效果图:

服务端接收到的。

客户端接受到服务器返回的。

server端代码直接运行在本地就可以了。

手机客户端运行在手机上就行。

先安装客户端,再启动server。然后再输入文字,点击发送。

server端:

package server;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket; public class AndroidServer implements Runnable{
public void run() {
try {
ServerSocket serverSocket=new ServerSocket(54321);
while(true)
{
System.out.println("等待接收用户连接:");
//接受客户端请求
Socket client=serverSocket.accept();
try
{
//接受客户端信息
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream(),"UTF-8"));
String str=in.readLine();
System.out.println("read: "+str);
//向服务器发送消息
PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream(),"UTF-8")),true);
out.println("return "+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 AndroidServer());
desktopServerThread.start();
}
}

手机端:

package net.testSocket;

import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
//客户端的实现
public class TestSocket 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()
{
@Override
public void onClick(View v) {
Socket socket=null;
String mesg=edit1.getText().toString()+"\r\n";
edit1.setText("");
Log.e("dddd", "sent id"); try {
socket=new Socket("192.168.0.178",54321);
//向服务器发送信息
PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8")),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());
}
}
});
}
}

注意事项:

请保证手机和电脑连载同一个局域网中,并且能够相互ping通。并且端口号没有被占用。

另外,一定要保证电脑的防火墙是关闭的。没有关闭的,请自己去关闭吧。不然。真的没得玩。会一直提示连接超时的。

为了防止中文乱码,请指定传输数据的格式。

最新文章

  1. C++根据图片url下载图片
  2. Android --AsyncTask异步任务(一)
  3. 关于.net页面提交后css样式不生效的发现
  4. CSS 高级技巧汇总
  5. MVC4 code first 增加属性,对应自动修改列的方法笔记
  6. 不用写软件,纯JS 实现QQ空间自动点赞
  7. [转载]新功能:用微软的Live Writer离线写博文
  8. 汤姆大叔的6道js题目
  9. SQL Server IO系统问题解决
  10. Windows Embedded CE 6.0 下载地址和序列号
  11. LINUX 无法登入系统(2017-1-16)
  12. Linux下使用ssh密钥实现无交互备份
  13. 林业有害生物监测系统(重庆宇创GIS)
  14. 深入浅出Git教程【转载】转载
  15. [转帖]Docker四种网络模式
  16. LeetCode(111):二叉树的最小深度
  17. Fenng早年间对推荐系统的思考
  18. SVN多分支开发模式V1.0.1
  19. Atitit phpstorm配置attilax总结
  20. Java实现循环链表

热门文章

  1. C# 导出Excel 多个Sheet
  2. Java 访问控制符
  3. windows新的数据类型
  4. CM3存储器系统
  5. Convert.ToInt32()和int.Parse()的区别
  6. Couchbase 使用方法
  7. redis数据结构与主要命令
  8. 火狐Firefox 浏览器 onblur() 并且alert()时文本被选中问题
  9. ecshop安全方面的一些参考建议
  10. 自己动手写谷歌API翻译接口