2019独角兽企业重金招聘Python工程师标准>>>

参考资料: TCP的Socket编程

左图:BIO Socket的单线程模式 右图:BIO Socket的多线程模式

public class SocketClient
{public static void main(String args[]) throws Exception{Socket socket = new Socket("192.168.100.236", 2221);System.out.println("socket created");// send requestOutputStream os = socket.getOutputStream();PrintWriter pw = new PrintWriter(os);System.out.println("send: hello");pw.write("hello");pw.flush();socket.shutdownOutput();// receview responseInputStream is = socket.getInputStream();InputStreamReader isr = new InputStreamReader(is);BufferedReader br = new BufferedReader(isr);String line = null;System.out.println("received: ");while ((line = br.readLine()) != null) {System.out.println(line);}socket.shutdownInput();//close resourcebr.close();pw.close();os.close();socket.close();}
}//服务器端(解决单客户端连接)
public class SocketServer
{public static void main(String args[]) throws Exception{       ServerSocket serverSocket = new ServerSocket(2221);System.out.println("server socket created");System.out.println("***");Socket socket = serverSocket.accept();//receives requestInputStream is = socket.getInputStream();InputStreamReader isr = new InputStreamReader(is);BufferedReader br = new BufferedReader(isr);String line = null;System.out.println("received: ");while ((line = br.readLine()) != null) {System.out.println(line);}socket.shutdownInput();//send responseOutputStream os = socket.getOutputStream();PrintWriter pw  = new PrintWriter(os);System.out.println("send: server received");pw.write("server received");pw.flush();socket.shutdownOutput();//close resourcepw.close();         br.close();isr.close();is.close();socket.close();serverSocket.close();}
}
//多线程服务端(解决多客户端连接)
public class SocketServer
{public static void main(String args[]) throws Exception{       ServerSocket serverSocket = new ServerSocket(2221);System.out.println("server socket created");while (true) //循环监听,等待客户端的连接{System.out.println("***");Socket socket = serverSocket.accept();ServerHandler serverHandler = new ServerHandler(socket);serverHandler.start();}}class ServerHandler extends Thread
{private final Logger logger = LoggerFactory.getLogger(getClass());//与本线程相关的Socketprivate Socket socket = null;public ServerHandler(Socket socket){this.socket = socket;}//线程执行的操作public void run(){InputStream is = null;InputStreamReader isr = null;BufferedReader br = null;OutputStream os = null;PrintWriter pw = null;try{//receives requestis = socket.getInputStream();isr = new InputStreamReader(is);br = new BufferedReader(isr);String line = null;System.out.println("received: ");while ((line = br.readLine()) != null) {System.out.println(line);}socket.shutdownInput();//send responseos = socket.getOutputStream();pw  = new PrintWriter(os);System.out.println("send: server received");pw.write("server received");pw.flush();socket.shutdownOutput();  }catch(Exception ex){logger.error(ex.getMessage());ex.printStackTrace(System.out);          }finally{//close resourcetry{pw.close();            br.close();isr.close();is.close();socket.close();}catch(Exception ex){ex.printStackTrace(System.out);}}}
}
}

转载于:https://my.oschina.net/liuyuanyuangogo/blog/810964

Java Socket(一)使用TCP传输字符串相关推荐

  1. Java Socket编程 - 基于TCP方式的二进制文件传输【转】http://blog.csdn.net/jia20003/article/details/8248221...

    此人博客挺好的,推荐一个! 一个基于Java Socket协议之上文件传输的完整示例,基于TCP通信完成. 除了基于TCP的二进制文件传输,还演示了JAVA Swing的一些编程技巧,Demo程序 实 ...

  2. Java Socket编程 - 基于TCP方式的二进制文件传输

    一个基于Java Socket协议之上文件传输的完整示例,基于TCP通信完成. 除了基于TCP的二进制文件传输,还演示了JAVA Swing的一些编程技巧,Demo程序 实现主要功能有以下几点: 1. ...

  3. Java Socket通信之TCP协议

    文章目录 一. Java流套接字通信模型 1.TCP模型 2.TCP Socket常见API ServerSocket API Socket API 二.TCP流套接字编程 1.回显服务器 2.多线程 ...

  4. Java Socket实战之三:传输对象

    转自:https://i.cnblogs.com/EditPosts.aspx?opt=1 前面两篇文章介绍了怎样建立Java Socket通信,这一篇说一下怎样使用Java Socket来传输对象. ...

  5. 【Java 网络编程】TCP 传输机制 ( 数据拆分 | 排序 | 顺序发送 | 顺序组装 | 超时重发 )

    文章目录 I TCP 传输过程 II TCP 传输示例 III TCP 传输特殊情况处理 I TCP 传输过程 1. TCP 传输过程 : 排序 , 顺序发送 , 顺序组装 ; ① 排序 : TCP ...

  6. Java Socket笔记-利用tcp socket搭建CS模型

    目录 基本概念 代码与实例 基本概念 这里采用的是TCP模型,只说明一点,在Java中有 import java.net.Socket; 这个包中TCP的用法个人觉得和QTcpSocket差不多(个人 ...

  7. java socket modbus_Java modbus tcp 编程有懂得吗?给个示例看看。。。十分感谢。

    此问题已解决谢谢!如下:publicstaticByteQueuemodbusTCP(Stringip,intport,intstart,intreadLenth){ModbusFactorymodb ...

  8. JAVA Socket实现实时接收TCP消息,让你的服务端通信更高效!

    本文主要介绍如何利用socket实现实时接收服务端发送的TCP消息. 目录 一.需要掌握 二.程序源码 三.运行演示 一.需要掌握 网络调试助手下载:https://www.aliyundrive.c ...

  9. Java基础23 网络编程 socket套接字流 TCP传输总结

    一.网络编程的概念 1.计算机网络:将不同地区的计算机,使用网络来进行连接 实现不同地区的数据的交互与共享(互联时代) 2. 网络编程的三要素:IP地址 端口号 协议 3. ip地址:是在网络连接中 ...

最新文章

  1. 基于至强® 平台的内存数据库解决方案
  2. tomcat启动出现闪退_(转)Tomcat 启动后 “闪退”
  3. axios队列 vue_(十三 )Vue 封装axios(四种请求)及相关介绍
  4. 吴恩达神经网络1-2-2_图神经网络进行药物发现-第2部分
  5. java getdelay_java中DelayQueue的一个使用陷阱分析
  6. MATLAB教程(1) MATLAB 基础知识(2)
  7. 入门级控件 c# 1615014955
  8. window下hadoop、hbase的安装和eclipse开发环境配置
  9. goland 注释模板_Java程序员简历模板,怎样才是一份好的技术简历
  10. KX3552驱动的安装大九
  11. 将Word转换成PDF格式文档的方法
  12. Spark 练习之疫情分析
  13. 什么是RS-485?
  14. 《MySQL实战45讲》——学习笔记31 “误删数据的解决方案(删行/删表/删库/删实例)“
  15. 曾做erp开发工程师,谈下自己的经验
  16. 关键词拍卖中最优保留价的研究
  17. C++转换构造函数和隐式转换函数
  18. C# 用 iso-8859-5 (cyillic)字符转换的方法, 确定Unicode文字中是否有俄语字母
  19. Kafka生产者与消费者详解
  20. 深度解析推荐系统的算法原理

热门文章

  1. allegro PCB 检查报告中的Report DangLine以及禁用Antenna vias
  2. 蓝牙2.0和4.0 android,蓝牙适配器2.0和4.0区别,蓝牙标准的发展历程
  3. 西门子s7 计算机通讯,S7-1200与电脑网线通讯-工业支持中心-西门子中国
  4. 浅谈filter中的chain.doFilter(request, response)的作用
  5. 天朝皇叔:学习笔记 Qt 连接数据库sql server
  6. mysql索引执行顺序_mysql索引及sql执行顺序
  7. charles问题,chls.pro/ssl 证书无法在小米手机下载 ?(最详细的解决方案,其他手机也可以适用)
  8. CC254x到CC2640
  9. c语言初学——运算符和表达式
  10. XSS-labs靶场通关秘籍(level 17-20)