1.Server类
public class Server {
/**
* java.net.ServerSocket
* ServerSocket主要有两个作用
* 1:向系统申请服务端口,客户端就是通过这个端口与服务端建立连接的
* 2:监听端口等待客户端的连接
* 一旦一个客户端与服务端建立连接,此时会创建一个Socket与该客户端交互
*/
private ServerSocket serverSocket;
public Server(){
try {
/*
实例化ServerSocket时要指定服务端口,如果该端口已经被操作
系统其他程序占用时会抛出异常:
java.net.BingException():address already in use
*/
serverSocket = new ServerSocket(8080);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public void start(){
try {
System.out.println("等待一个客户端连接");
Socket socket = serverSocket.accept();
System.out.println("客户端:"+socket.getInetAddress().getHostAddress()+"上线!");
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
Server server = new Server();
server.start();
}
}
2.Client类
public class Client {
/*
java.net.Socket 套接字
该类封装了TCP协议的通讯细节,我们使用它可以与远端计算机建立连接并进行
可靠的传输通讯.
Socket:插座
*/
private Socket socket;
public Client(){
try {
System.out.println("正在连接服务器...");
/*
Socket的实例化时需要传入两个参数:
1:服务器的IP地址
2:服务端应用程序打开的端口
我们通过IP地址可以找到服务器在网络中的位置,通过端口找到运行在
服务器上的服务端应用程序
*/
socket=new Socket("localhost",8080);
System.out.println("连接成功..");
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
Client client = new Client();
}
}
文章展示了如何使用Java的ServerSocket和Socket类来实现一个简单的服务器和客户端通信。Server类负责监听8080端口,等待客户端连接,而Client类则尝试连接到服务器。当客户端连接成功时,服务器会打印客户端的IP地址。
1756

被折叠的 条评论
为什么被折叠?



