Java实现网络监听
2024年03月07日
//tcpServer.java由fpont 3/2000//用法:java tcpServer<端口号>。
//默认端口为1500。
//由客户端关闭的连接。
//该服务器仅处理1个连接。
导入java.net.*;
导入java.io.*;
公共类tcpServer{
公共静态void main(String args[]){
int port;
ServerSocket服务器套接字;
BufferedReader输入;
尝试{
port=Integer.parseInt(args[0]);
}
catch(Exception e){
System.out.println("端口=1500(默认)");
端口=1500;
}
尝试{
server_socket=new ServerSocket(port);
System.out.println("服务器在端口上等待客户端"+
server_socket.getLocalPort());
//服务器无限循环
while(true){
Socket socket=server_socket.accept();
System.out.println("已接受新连接"+
socket.getInetAddress()+
":"+socket.getPort());
输入=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//打印接收到的数据
try{
while(true){
String message=input.readLine();
如果(消息==空)中断;
System.out.println(消息);
}
}
catch(IOException e){
System.out.println(e);
}
//连接被客户端关闭
try{
socket.close();
System.out.println("连接被客户端关闭");
}
catch(IOException e){
System.out.println(e);
}
}
}
catch(IOException e){
System.out.println(e);
}
}
}
//tcpClient.java by fpont 3/2000
//用法:java tcpClient<server><port>
//默认端口为1500
import java.net.*;
导入java.io.*;
公共类tcpClient{
公共静态void main(String[]args){
int port=1500;
字符串服务器=“本地主机”;
套接字套接字=空;
待发送字符串;
BufferedReader输入;
PrintWriter输出;
整数错误=1;
//读取参数
if(args.length==2){
server=args[0];
尝试{
port=Integer.parseInt(args[1]);
}
catch(Exception e){
System.out.println("服务器端口=1000(默认)");
端口=1500;
}
}
//连接到服务器
try{
socket=new Socket(server,port);
System.out.println("已与服务器连接"+
socket.getInetAddress()+
":"+socket.getPort());
}
catch(UnknownHostException e){
System.out.println(e);
系统退出(错误);
}
catch(IOException e){
System.out.println(e);
系统退出(错误);
}
尝试{
input=new BufferedReader(new InputStreamReader(System.in));
输出=new PrintWriter(socket.getOutputStream(),true);
//获取用户输入并将其传输到服务器
while(true){
lineToBeSent=input.readLine();
//如果输入行是“.”则停止
if(lineToBeSent.equals("."))中断;
输出.println(待发送行);
}
}
catch(IOException e){
System.out.println(e);
}
尝试{
socket.close();
}
catch(IOException e){
System.out.println(e);
}}
}