//发送端(Client)
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class TCPClicent {
public static void main(String[] args) throws IOException {
//TCP发送数据分为以下几步:
//1.创建发送端socket对象(创建连接:抑或说是创建码头)并指定IP地址和端口号,这里与UDP创建Socket是可以不指定端口号的情况不同
Socket ss = new Socket(InetAddress.getByName("192.168.0.103"),10086);
//2.获取输出流对象,准备开始输出数据;
OutputStream os = ss.getOutputStream();
String str = "TCP-TEST";
//3.开始数据发送,数据流是按位输出的
os.write(str.getBytes());
//4.释放资源
ss.close();
}
}
//接收端 (Server)
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 {
//TCP接收数据分为以下几步:
//1.创建接收端的socket对象,与发送端的Socket类不同这里是ServerSocket类,用于监听
System.out.println("开始监听......");
ServerSocket s = new ServerSocket(10086);//注意,这里监听用的端口号和新建立连接用的端口号将保持一致,不会开新的端口
//开始监听(阻塞),直到某用户的三次握手完毕,建立起了安全可靠可用的连接,再利用一个真正的socket对象将数据接下来。
Socket ss = s.accept();
System.out.println("收到消息,并开始建立连接......");
//获取输入数据流
InputStream is = ss.getInputStream();
//解析获取数据
byte [] buf = new byte[1024];
int len = is.read(buf);
//输出数据
System.out.println(new String(buf,0,len));
//释放资源
ss.close();
}
}