当前位置:首页 > android局域网socket通信
android局域网socket通信
1.台式机没有无线网卡,就用的360随身wifi开启了网络共享模式,相当于建了一个热点。 Windows下:运行->cmd->ipconfig /all,查询本地IP地址:本次测试为172.17.187.1
2.将手机连接到WIFI热点,在WIFI连接的高级选项菜单,查询到手机端获取的IP地址为:172.17.187.2,可见我的台式机和手机已经在同一局域网中。
3.开始编写服务器端程序
在eclipse中新建JAVA项目,保留Main函数。
public static void main(String[] args) throws IOException { ServerSocket ss=new ServerSocket(30000); // // //// // // // }
}
ServerSocket ss=new ServerSocket();
String ip=\监听无线网卡IP String ip=\监听本地所有IP int port=30633;
InetSocketAddress addr=new InetSocketAddress(ip, port); ss.bind(addr);
System.out.println(\); while(true){ }
Socket s=ss.accept();
String IPaddr=ss.getLocalSocketAddress().toString(); System.out.println(\+IPaddr); System.out.println(\); OutputStream os=s.getOutputStream();
os.write(\您好,您收到服务器的反馈!\.getBytes(\)); s.close();
服务器端函数很简单,要注意一点就是,new ServerSocket()的时候,若没有绑定监听IP,则会监听本机所有IP,即ip=\这种情况,所以客户端填写socket的目的IP是我的台式机的WIFI网卡ip也一定会被监听到,当然绑定了监听IP为WIFI网卡ip也没问题。
4.客户端程序
客户端启动线程,负责从服务器端接收反馈信息,将反馈信息填写到UI控件中。
new Thread(){
4.运行程序
将服务器端代码,右键工程,run as-> JAVA PROJECT,则启动服务器端程序,服务器的accept()会阻塞,直到客户端接入。然后运行客户端程序,发布到调试用的真机上。运行成功!
}
}
@Override
public void run() {
try {
//121.248.55.120
Socket socket=new Socket(\,30000); BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream())); String line=br.readLine();
String myip=socket.getLocalAddress().toString(); txt1.append(\来自服务器的问候:\+line+\); txt1.append(myip); br.close(); socket.close(); e.printStackTrace();
} catch (IOException e) {
}.start();
共分享92篇相关文档