黑马程序员技术交流社区

标题: 使用TCP协议完成一个客户端一个服务器,该怎么写 [打印本页]

作者: jiaweizhang    时间: 2015-9-18 10:46
标题: 使用TCP协议完成一个客户端一个服务器,该怎么写
我遇到一个练习题:
使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。
服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。

该怎么写,求大神赐教
作者: 枕草虫    时间: 2015-9-18 10:58
弱弱的问一句,你的网络编程那些视频看完了吗?
作者: jiaweizhang    时间: 2015-9-18 13:53
枕草虫 发表于 2015-9-18 10:58
弱弱的问一句,你的网络编程那些视频看完了吗?

基础测试随机抽的题目,并未看到网络编程
作者: 芝麻糊    时间: 2015-9-18 17:48
这个。。 老毕网络视频讲的很详细,看看就哦了
作者: jiaweizhang    时间: 2015-9-19 00:21
芝麻糊 发表于 2015-9-18 17:48
这个。。 老毕网络视频讲的很详细,看看就哦了

ok,还有一些视频没看
作者: Anmyre    时间: 2015-9-19 09:16
毕老师的基础视频有啊  
作者: fmi110    时间: 2015-9-19 09:29
接收端
  1. package tcp.communication;

  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.io.OutputStreamWriter;
  8. import java.net.ServerSocket;
  9. import java.net.Socket;

  10. public class Receiver {

  11.         /**
  12.          * @param args
  13.          * @throws IOException
  14.          */
  15.         public static void main(String[] args) throws IOException {
  16.                 // 建立Socket对象
  17.                 ServerSocket ss = new ServerSocket(10086);
  18.                 // 监听链接
  19.                 System.out.println("监听链接:");
  20.                 // 获取输入流
  21.                 Socket s = ss.accept();
  22.                 while (true) {

  23.                         InputStream is = s.getInputStream();
  24.                         BufferedReader br = new BufferedReader(new InputStreamReader(is));
  25.                         // 解析信息
  26.                         // System.out.println("等待消息:");
  27.                         String line = br.readLine();
  28.                         System.out.println(s.getInetAddress().getHostAddress() + " :"
  29.                                         + line);
  30.                         // 反馈消息
  31.                         BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
  32.                                         s.getOutputStream()));
  33.                         bw.write("消息收到!!");
  34.                         bw.newLine();
  35.                         bw.flush();

  36.                 }
  37.         }

  38. }
复制代码

发送端
  1. package tcp.communication;

  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.io.OutputStream;
  8. import java.io.OutputStreamWriter;
  9. import java.net.Socket;
  10. import java.net.UnknownHostException;

  11. public class Sender {

  12.         /**
  13.          * @param args
  14.          * @throws IOException
  15.          * @throws UnknownHostException
  16.          */
  17.         public static void main(String[] args) throws UnknownHostException,
  18.                         IOException {
  19.                 // 建立套接字对象
  20.                 Socket s = new Socket("192.168.31.248", 10086);
  21.                 // 获取输入流对象
  22.                 InputStream is = s.getInputStream();
  23.                 OutputStream os = s.getOutputStream();
  24.                 // 封装键盘录入信息
  25.                 String message = null;
  26.                 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  27.                 BufferedReader feedback = new BufferedReader(new InputStreamReader(is));
  28.                 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
  29.                 while((message = br.readLine())!= null){
  30.                         if("886".equals(message))
  31.                                 break;
  32.                         bw.write(message);
  33.                         bw.newLine();
  34.                         bw.flush();
  35.                         System.out.println(s.getInetAddress().getHostAddress()+" ... "+feedback.readLine());
  36.                 }
  37.                 // 发送信息
  38.                 // 释放资源
  39.                 os.close();

  40.         }

  41. }
复制代码

作者: fmi110    时间: 2015-9-19 09:31
运行
  1. 这是客户端发来的消息
  2. 192.168.31.248 ... 消息收到!!
  3. 真的收到了?
  4. 192.168.31.248 ... 消息收到!!
  5. 好吧
  6. 192.168.31.248 ... 消息收到!!
  7. 886
复制代码
[/code]
  1. 监听链接:
  2. 192.168.31.248 :这是客户端发来的消息
  3. 192.168.31.248 :真的收到了?
  4. 192.168.31.248 :好吧
  5. 192.168.31.248 :null
复制代码


作者: chenyannna    时间: 2015-9-19 09:42
视频里很详细的
作者: jiaweizhang    时间: 2015-9-20 18:09
fmi110 发表于 2015-9-19 09:31
运行[/code]

谢谢,先收下,慢慢吸收
作者: 李嘉辉    时间: 2016-12-7 13:42
谁有视频啊   方便给我发一下吗  谢谢了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2