看了两天socket通信,也参考了网上其他人是怎么写的。

下面我把最简单的socket例程贴出来

server代码:

public class Server {private static int port = 8888;  private static ServerSocket serverSocket;  private static Socket socket;public static void main(String args[]) throws IOException {  serverSocket = new ServerSocket(port, 2);  socket = serverSocket.accept();  System.out.println("客户端已链接");  DataInputStream dis = new DataInputStream(socket.getInputStream()); DataOutputStream dos = new DataOutputStream(socket.getOutputStream());dos.writeUTF("来自服务器的消息");while (true){  /*//读取客户端发送的信息String str = dis.readUTF();System.out.println("From 客户端:"+str);if(str.equals("bye")){  socket.close();  serverSocket.close();  break;  }  */// 发送键盘输入的一行    String s = new BufferedReader(new InputStreamReader(System.in)).readLine(); dos.writeUTF(s);}   }
}

Client代码:

public class Client {private static int port = 8888;  private static String host = "localhost";  private static Socket socket;  public static void main(String args[]) throws UnknownHostException,  IOException {  socket = new Socket(host, port);  DataInputStream dis = new DataInputStream(socket.getInputStream()); DataOutputStream dos = new DataOutputStream(socket.getOutputStream());dos.writeUTF("来自客户端的消息");while(true){  //读取服务器发送的信息String str = dis.readUTF();System.out.println("From 服务器:"+str);if(str.equals("bye")){  socket.close();  System.out.println("关闭socket");  break;  } // 发送键盘输入的一行    //String s = new BufferedReader(new InputStreamReader(System.in)).readLine(); //dos.writeUTF(s);
        }     }
}

因为readLine()是一个阻塞函数,接收不到消息会阻塞在那里。如果把两个文件中的注释去掉后,服务器和客户端必须你一句我一句,才能正常通信。目前还没有解决办法。所以,先实现单向通信:server发送数据,client接收数据。

转载于:https://www.cnblogs.com/liushao/p/6378778.html

服务器和客户端Socket单向通信例子相关推荐

  1. TCP服务器和客户端的链接例子(侧重点在注意关闭套接子,减少套接子的描述子)

    TCP服务器和客户端的链接例子(侧重点在注意关闭套接子,减少套接子的描述子) 每个文件或套接口都有一个访问计数,该访问计数在文件表项中维护,它表示当前指向该文件或套接口的打开的描述字个数. 每个文件, ...

  2. 修改客户端 与服务器断开,如何处理服务器或客户端socket断开

    <如何处理服务器或客户端socket断开>由会员分享,可在线阅读,更多相关<如何处理服务器或客户端socket断开(10页珍藏版)>请在人人文库网上搜索. 1.编程经验谈 如何 ...

  3. 一个 Java 的 Socket 服务器和客户端通信的例子

    http://blog.csdn.net/defonds/article/details/7971259 多个客户端对应一个服务端的通信的一个小例子.  服务端和客户端代码: public class ...

  4. 一段最简单的使用socket.io进行服务器和客户端通信的例子代码

    服务器端代码: var app = require('express')(); var server = require('http').Server(app); var io = require(' ...

  5. epoll ET模式服务器和客户端源码例子

    关于epoll替代select作为高性能服务器的事件通知机制的资料相当多,我就不在这里班门弄斧了,有兴趣的同学可以参考末尾的文献链接. 这里说明如下: 1.epoll是linux下高并发服务器的完美方 ...

  6. 服务器端和客户端互发消息,Socket编程实现简单的服务器与客户端互发消息

    socket编程的大致步骤如下: 1.创建服务器端SocketServer,并定义SocketServer的监听端口; 2.ServerSocket调用accept( )方法,是指处于阻塞: 3.创建 ...

  7. socket和threading的智能问答机器人服务器与客户端(python)

    智能问答机器人服务器与客户端 socket用于根据指定的地址族.数据类型和协议来分配一个套接口的描述字及其所用的资源. 服务端套接字函数 server.bind() 绑定(主机,端口号)到套接字 se ...

  8. Java Socket简单例子、readLine()、readUTF()

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51752701 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...

  9. php运行socket服务器,PHP_php简单socket服务器客户端代码实例,本篇文章分享一个简单的socket - phpStudy...

    php简单socket服务器客户端代码实例 本篇文章分享一个简单的socket示例,用php.实现一个接收输入字符串,处理并返回这个字符串到客户端的TCP服务. 产生一个 socket 服务端 /*文 ...

最新文章

  1. Visual Studio 2013 Update 2 and with Update 2
  2. Visual Studio 2010 第一时间体验旗舰版
  3. 运维基础(8)shell脚本
  4. COND SWITCH 操作符
  5. springboot扫描组件_springboot多模块包扫描问题的解决方法
  6. GaussDB(DWS)发生数据倾斜不要慌,一文教你轻松获取表倾斜率
  7. Web测试和App测试区别
  8. 淘宝店铺所有商品API接口(店铺所有商品列表接口)
  9. iostream头文件简单理解
  10. MATLAB机器人运动学与动力学(自己学习用)
  11. 计算机的硬盘和光驱的接口是什么类型的接口,连接硬盘和光驱是什么接口
  12. 学习笔记(13):MATLAB基础入门课程-kron函数
  13. 【笔记】用Python写百度翻译网络爬虫
  14. Chromium源码解读--net目录结构
  15. MTK MT8735射频设计资料参考
  16. (13)web安全|渗透测试|网络安全 注入/跨库查询/文件读写/常见的防护原理 详细图解
  17. Appium 自动化测试 手机操作
  18. sysvinit源码分析 Linux-init-process-analyse
  19. fails sanity check错误的解决方法
  20. 智慧工地管理系统在建筑行业中的应用

热门文章

  1. [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序使用高级功能...
  2. .NET_.NET 部署问题
  3. 风格之争:Coroutine vs Callback
  4. 剑指offer刷题感想
  5. 图的深度优先搜索遍历
  6. Python最大公约数gcd、最小公倍数lcm
  7. 7.1 pdo 宝塔面板php_宝塔面板PHP7.2 安装mcrypt扩展
  8. SAP License:统计型实际结算型内部订单
  9. SAP License:求职最受欢迎的十大技能
  10. 设计方案--如何设计移动端高清方案