创建简单服务器

实现目标:创建一个简单的服务器,可以将客户机发来的消息显示出来,之后再返回给客户机。

 

①使用java创建一个服务器的指令非常简单,就是在指定窗口上创建一个java.net.ServerSocket对象。代码如下:

 

private ServerSocket server;

public void setUpServer(int port) {

try {

//创建服务器

server = new ServerSocket(port);

System.out.println("已创建服务器" + port);

} catch (IOException e) {

e.printStackTrace();

}

}

 

②服务器创建之后就相当于进入了待机状态,等待其他的客户机来连接;

// 让服务器进入等待状态

Socket client = server.accept();

 

需要注意的是:在调用 server.accept()方法时,程序就会“阻塞”在这里——直到有一个客户机连接上来,这个方法才会返回一个 Socket 类的对象来代表服务器与客户机之间的连接

 

③要接受客户机发来的消息并返回给客户机,就必须创建输入输出流对象。

向输入流中写入的数据,就被发向了客户机;从输出流对象中读取数据,读到的就是客户机发来的数据;

 

// 从连接对象上获取输入输出流对象

OutputStream out =client.getOutputStream();

InputStream in = client.getInputStream();

out.write("欢迎来到聊天室\r\n".getBytes());

out.write("输入quit退出\r\n".getBytes());

 

 

 

 

 

 

④使用输入输出流进行对数据的读写操作,在这里实现了一次读取一行字符串的功能,直至按下回车输出;

 

String s = new String();

while (true) {

char ch = (char) in.read();

System.out.println();

System.out.print("用户输入:" + ch);

if (ch == '\n') {

out.write(("服务器收到:\r" + s).getBytes());

out.write("\r\n".getBytes());

s = new String();

}

s = s + ch;

if (s.contains("quit")) {

break;

}

}

out.flush();

out.close();

 

⑤使用telnet来测试创建的服务器

猜你喜欢

转载自blog.csdn.net/HNU_Csee_wjw/article/details/53023610