猿问

为什么TCP通信在我的电脑上服务端接收不到,其他电脑可以?

package com.imooc.tcpsocket;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class TCPServer {

	public static void main(String[] args) throws IOException {
		//服务端接收客户端发送的数据,并打印在控制台上。
		//1。创建服务端socket服务。通过ServerSocket对象
		//2.服务端必须对外提供一个端口,否则客户端无法连接。
		ServerSocket ss=new ServerSocket(10002);
		//3.获取连接过来的客户端对象。
		Socket s=ss.accept();//阻塞式
		String ip=s.getInetAddress().getHostAddress();
		//4.通过客户端对象获取socket流读取客户端发来的数据,并打印在控制台上。
		InputStream in=s.getInputStream();
		byte[] buf=new byte[1024];
		int len=in.read(buf);
		String text=new String(buf, 0, len);
		System.out.println(ip+":"+text);
		//5.关闭资源。关客户端,关服务端(服务端一般不关闭)
		s.close();
		ss.close();

	}

}
package com.imooc.tcpsocket;

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class TCPClient {

	public static void main(String[] args) throws IOException {
		System.out.println(InetAddress.getLocalHost().getHostAddress());
		//TCP传输,客户端建立过程
		//1.创建tcp客户端socket服务,使用socket对象。
		//建议该对象一创建就明确目的地。要连接的主机。
		Socket socket=new Socket(InetAddress.getLocalHost().getHostAddress(), 10002);
		//2.如果连接建立成功,说明数据通道已建立。
		//该通道是socket流,是底层建立好的,既然是流,说明既有输入,又有输出。
		//想要输入或输出流对象,可以找socket来获取。
		//可以通过getOutputStream()和getInputStream()来获取2个字节流
		OutputStream out=socket.getOutputStream();
		//3.使用输出流,将数据写出。
		out.write("hello,again!!!~".getBytes());
		//4.关闭资源
		socket.close();

	}

}


慕粉w0w
浏览 1966回答 1
1回答

王大厉

192.168.1.192:hello,again!!!~测试是可以接受的到的
随时随地看视频慕课网APP

相关分类

Java
我要回答