实现简单的服务器程序
package Socket;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class EchoServer {
public static void main(String[] args) {
try {
//建立服务器端Socket,监听8189端口
ServerSocket s = new ServerSocket(8189);
//等待客户端的访问
Socket incoming = s.accept();
try{
//从“客户端”Socket对象读字节流
InputStream inStream = incoming.getInputStream();
//向“客户端”Socket对象写字节流
OutputStream outStream = incoming.getOutputStream();
//将读出来的数据封装成Scanner对象
Scanner in = new Scanner(inStream);
//封装输出流
PrintWriter out = new PrintWriter(outStream,true);
//接收到客户端的请求,输出"Hello! Enter Bye to exit."
out.println("Hello! Enter BYE to exit.");
//解析客户端的输入,然后做出回应
boolean done = false;
while(!done&&in.hasNext())
{
String line = in.nextLine();
out.println("Echo:"+line);
if(line.trim().equals("BYE")) done=true;
}
}
finally{
//关闭客户端的Socket
incoming.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
然后在cmd下 使用telnet 127.0.0.1 8189 进行测试。
1.ServerSocket(int port)
创建一个监控端口的服务器Socket
2.Socket accept() 等待连接。
该方法阻塞当前线程直到建立连接为止。该方法返回一个Socket对象。程序可以通过这个对象与连接中的客户端进行通信。
3.void close()
关闭服务器套接字