2 cat6572325 cat6572325 于 2016.02.17 20:06 提问

笔记本没办法接收到android客户端的socket连接

服务器是java写的,在笔记本上面运行。用java的客户端倒是可以连接,但是android写的就不行了。双方程序都是没问题的,台式机测试过。
试过用wifi连接,用网线连接都不行。还有一个问题就是在网上查的ip跟网络连接上面的ip完全不一样

5个回答

simpleGW
simpleGW   2016.02.17 21:12
已采纳

我自己的电脑和手机连得同一个WIFI,通过Socket已经连接成功了

服务端:
public class SocketTest {
public static void main(String[] args) throws IOException {

    ServerSocket so = new ServerSocket(8888);
    so.accept();
    System.out.println("手机已连接");

}

}
Android 客户端
首先要给项目添加联网权限

获取笔记本WIFI网络IP地址 CMD 命令 ipconfig

无线局域网适配器 WLAN:

连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::c5e0:6ee2:bb07:783d%8
IPv4 地址 . . . . . . . . . . . . : 192.168.0.101
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.0.1

public void doClick(View v){
new Thread(){
public void run() {
try {
Socket so = new Socket("192.168.0.101",8888);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

        };
    }.start();

}
luochoudan
luochoudan   Ds   Rxr 2016.02.17 20:14

啥叫“在网上查的ip跟网络连接上面的ip完全不一样”?android的socket就是java里面滴。据你描述,问题可能出在ip上吧,另外端口也注意。

simpleGW
simpleGW   2016.02.17 20:27

你的手机和笔记本如果都是使用同一个WIFI网络,那么说明在同一个局域网中可以通过IP地址进行通讯。
所以你需要定义好Socket服务端的端口号,还需要指导你的笔记本的IP地址,之后就可以在Socket客户端传入IP和端口号链接笔记本服务端程序
在笔记本上cmd输ipconfig命令
图片说明
就能获取你当前在局域网中的IP

ZuoJiaoZhuZuo
ZuoJiaoZhuZuo   2016.02.17 20:35

笔记本电脑可以开热点Wifi给安卓手机连接,我用的是“猎豹免费WiFi" ,连接上好安卓端填电脑局联网IP

Royal_lr
Royal_lr   Ds   Rxr 2016.02.18 09:55

连接同一个wifi就行了,,估计可能是ip或端口的原因

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!