实现简单的服务器程序
- 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()
关闭服务器套接字