package TCP1;
//完成TCP通信的 实现发1收1
import java.io.DataOutputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
public class Client {
public static void main(String[] args)throws Exception {
//1:创建Socket对象并同时请求服务端程序的链接
Socket socket= new Socket("127.0.0.1",8888);
//2:从Socket通信管道中得到一个字节输出流 用来数据发给到服务器
OutputStream os= socket.getOutputStream();
//3:把低级的输出流封装成数据输出流
DataOutputStream dos= new DataOutputStream(os);
//开始写数据出去了
dos.writeUTF("在一起好吗?");
System.out.println("发送完成");
dos.close(); //释放资源IO流
socket.close(); //释放网络资源TCP通信
}
}
package TCP1;
// 完成TCP通信服务端 实现发1收1
import java.io.DataInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws Exception {
System.out.println("===============启动服务端================");
//1:创建serverSocket的对象 同时为服务端注册端口
ServerSocket serverSocket = new ServerSocket(8888);
//2:使用serverSocket 对象 调用accept 方法 等待客户端连接请求
Socket socket= serverSocket.accept();
//3:从socket管道中得到一个字节输入流
InputStream inputStream = socket.getInputStream();
//4: 把原始的字节输入流封装成输入流
DataInputStream dis= new DataInputStream(inputStream);
//5:使用数据输入流 读取客户端发箍来的数据
String rs= dis.readUTF();
System.out.println(rs);
// 6:谁发的数据获取IP
System.out.println(socket.getRemoteSocketAddress());
System.out.println(socket.getPort());
dis.close(); //释放资源IO流
socket.close(); //释放网络资源TCP通信
}
}