今天我学习java网络编程的第二步:服务器端如何来侦听客户端的请求的问题。
主要通过两个socket类:
1 ServerSocket 运行在服务器端,用来侦听来自客户端的socket请求。
2 Socket 向服务器端发送请求。
下面列出一个例子(服务器端侦听客户端的请求的例子)
服务器端代码:
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public final class Server {
public static void main(String[] args) {
System.out.println("wait......");
try {
ServerSocket serverSocket=new ServerSocket(6666) ;//服务器的socket
Socket clientSocket=null;//客户端的socket
while(true){
clientSocket=serverSocket.accept() ;//监听客户端请求
System.out.println("监听到了请求。。。开始执行。。。");
---下面可以处理业务逻辑
System.out.println("1 and 3=="+(1+3));
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
下面是客户端代码:
import java.io.IOException;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
try {
Socket serverSocket = new Socket("127.0.0.1", 6666); //端口与服务器端口一致。
serverSocket.close() ;
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
首先运行Server.java,服务器上会有一个线程永远侦听客户端的请求,一但侦听到,便打印1+3=4.然后运行Client.java
向服务器端的6666端口发送请求。测试打印如下。。。
监听到了请求。。。开始执行。。。
1 and 3==4
监听到了请求。。。开始执行。。。
1 and 3==4