问题描述
- 笔记本没办法接收到android客户端的socket连接
-
服务器是java写的,在笔记本上面运行。用java的客户端倒是可以连接,但是android写的就不行了。双方程序都是没问题的,台式机测试过。
试过用wifi连接,用网线连接都不行。还有一个问题就是在网上查的ip跟网络连接上面的ip完全不一样
解决方案
啥叫“在网上查的ip跟网络连接上面的ip完全不一样”?android的socket就是java里面滴。据你描述,问题可能出在ip上吧,另外端口也注意。
解决方案二:
你的手机和笔记本如果都是使用同一个WIFI网络,那么说明在同一个局域网中可以通过IP地址进行通讯。
所以你需要定义好Socket服务端的端口号,还需要指导你的笔记本的IP地址,之后就可以在Socket客户端传入IP和端口号链接笔记本服务端程序
在笔记本上cmd输ipconfig命令
就能获取你当前在局域网中的IP
解决方案三:
笔记本电脑可以开热点Wifi给安卓手机连接,我用的是“猎豹免费WiFi" ,连接上好安卓端填电脑局联网IP
解决方案四:
我自己的电脑和手机连得同一个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();
}
解决方案五:
连接同一个wifi就行了,,估计可能是ip或端口的原因