程序思路简单,请各位多多指教。
Tcp 编程之服务器端 需求: 服务器接收客户端发送的字符串,反转之后发回客户端。 思路整理: 第一步:创建一个流套接字并将其连接到指定的端口号,服务器开始接收请求。 (在这里可以打印客户端IP) 第二步:创建一个输入流,用于接收服务器端读取到的数据。 第三步:创建一个输出流,用于服务器端处理后的数据返回。 第四步:业务逻辑处理,并返回数据。
代码如下:
importjava.io.BufferedReader; importjava.io.BufferedWriter; importjava.io.InputStreamReader; importjava.io.OutputStreamWriter; importjava.net.ServerSocket; importjava.net.Socket;
/* *服务器接收客户端发送的字符串,反转之后发回客户端。 */ publicclass Test10_Tcp_Server {
public static void main(String[] agrs)throws Exception
{ // 创建一个流套接字并将其连接到指定的端口号。 ServerSocket ss = new ServerSocket(8888); Socket s = ss.accept();// 服务器开始接收请求 // 获取请求主机的IP地址 String ip = s.getInetAddress().getHostAddress(); System.out.println(ip + "号主机与服务器已经连接"); BufferedReader buf = new BufferedReader(new InputStreamReader( s.getInputStream())); BufferedWriter bufout = new BufferedWriter(new OutputStreamWriter( s.getOutputStream()) ); // 创建一个输出流 String line = null; while ((line = buf.readLine()) != null) { System.out.println(line);// 打印获取客户端传输过来的数据 StringBuffer re = new StringBuffer(line); String str = re.reverse().toString(); // 字符串反转处理 System.out.println(re + "++ ++" + str); // 服务器本地输出 bufout.write(str); // 将字符反转并输出到客户端 bufout.newLine();//写入一个行分隔符。 bufout.flush();// 输出返回到客服端 } s.close(); } } |