Socket通讯的过程

Server端Listen(监听)某个端口是否有连接请求,Client端向Server 端发出Connect(连接)请求,Server端向Client端发回Accept(接受)消息。一个连接就建立起来了。Server端和Client 端都可以通过Send,Write等方法与对方通信。

对于一个功能齐全的Socket,都要包含以下基本结构,其工作过程包含以下四个基本的步骤:

  (1) 创建Socket;

  (2) 打开连接到Socket的输入/出流;

  (3) 按照一定的协议对Socket进行读/写操作;

  (4) 关闭Socket.

服务端

/**
* 单播
*/
public class SocketServer {
public static void main(String[] args) {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept(); //监听客户端
System.out.println("start server");
//从buffer读取内容
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println(bufferedReader.readLine());
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(serverSocket!=null){
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} }
}

客户端

public class SocketClient {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 8888);
PrintWriter printWriter = new PrintWriter(socket.getOutputStream(), true);
System.out.println("start client");
printWriter.print("hello");
printWriter.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
} }
}

最新文章

  1. 玩转Windows服务系列——命令行管理Windows服务
  2. hibernate简单注释(一.1)
  3. mybatis generator使用总结
  4. WIN API 擦除所绘图像
  5. 【转】深入理解TextView实现Rich Text--在同一个TextView设置不同字体风格
  6. mysql分区(partition)
  7. spring 重定向以及转发 乱码问题解决
  8. 【python】python的正则表达式 re
  9. C语言第三次作业--嵌套循环
  10. Objective-C点语法
  11. iOS 集成百度地图 位置偏移问题
  12. 5.15 pymysql 模块
  13. Vue相关开源项目库汇总(史上最全)
  14. Delphi 三层TDataSetProvider
  15. VC++ 多线程编程,win32,MFC 例子(转)
  16. 机器学习入门-集成算法(bagging, boosting, stacking)
  17. [EffectiveC++]item44:将与参数无关的代码抽离templates
  18. 基于PHP规范的自动加载方式(composer配置)
  19. SQL语句的增删改查(详细)
  20. java工厂模式个人体会

热门文章

  1. 有关SharedPreference的使用
  2. 对于URL中文和特殊字符的处理方法
  3. BAT网络运维常见面试题目总结
  4. CSU1808 地铁 —— dijkstra变形
  5. js中const,var,let区别 今天第一次遇到const定义
  6. LoadRunner监控Linux与Windows方法
  7. match_parent 、 fill_parent 、 wrap_content
  8. 万亿级日志与行为数据存储查询技术剖析(续)——Tindex是改造的lucene和druid
  9. HDU1083(最大匹配)
  10. htop 详细功能使用简介