Socket-TCP-1

来源:互联网 发布:淘宝欢乐豆怎么刷的 编辑:程序博客网 时间:2024/05/22 14:56

实现服务器端一次性接收客户端请求,首先在本机上启动服务器端,等待客户端连接,然后客户端启动,发送用户名和密码,服务器端收到后输出来,服务结束。

首先是服务器端的代码:

package love.jimo;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;public class Server {public static void main(String[] args) {/* * 服务端 */try {//建立服务器端socket,并监听此端口9000ServerSocket ssket = new ServerSocket(9000);System.out.println("---服务器端启动---");//调用accept方法监听,等待客户端连接Socket sket = ssket.accept();//获得输入流,并读取客户端信息InputStream is = sket.getInputStream();//将字节流转换为字符流InputStreamReader isr = new InputStreamReader(is);//缓冲BufferedReader br = new BufferedReader(isr);String data = null;//循环读取while(null != (data = br.readLine())){System.out.println("在服务器端收到客户端的信息是:"+data);}//关闭socket输入流sket.shutdownInput();//关闭其它资源is.close();isr.close();br.close();sket.close();ssket.close();} catch (IOException e) {e.printStackTrace();}}}
然后是客户端的代码:

package love.jimo;import java.io.IOException;import java.io.OutputStream;import java.io.PrintWriter;import java.net.Socket;import java.net.UnknownHostException;public class Client {public static void main(String[] args) {/* * 客户端 */try {//创建客户端socket,指定服务器地址和端口,localhost代表本机地址Socket sket = new Socket("localhost",9000);//获取输出流,向服务器发送信息OutputStream os = sket.getOutputStream();//将字节输出流包装为打印输出流PrintWriter pw = new PrintWriter(os);pw.write("username:jimo;password:111");//清空缓存,将消息发送pw.flush();//关闭socket输出流sket.shutdownOutput();//关闭资源os.close();pw.close();sket.close();} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}
这次测试已本机作为服务器端和客户端

测试时首先启动服务器端(即运行代码):

同时Eclipse的窗口会出现运行态:


然后运行客户端代码,这时服务器端的输出接收到了客户端的请求,而客户端没有输出:


这时运行结束:



0 0
原创粉丝点击