Java Socket(一)使用TCP传输字符串
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传输字符串相关推荐
- Java Socket编程 - 基于TCP方式的二进制文件传输【转】http://blog.csdn.net/jia20003/article/details/8248221...
此人博客挺好的,推荐一个! 一个基于Java Socket协议之上文件传输的完整示例,基于TCP通信完成. 除了基于TCP的二进制文件传输,还演示了JAVA Swing的一些编程技巧,Demo程序 实 ...
- Java Socket编程 - 基于TCP方式的二进制文件传输
一个基于Java Socket协议之上文件传输的完整示例,基于TCP通信完成. 除了基于TCP的二进制文件传输,还演示了JAVA Swing的一些编程技巧,Demo程序 实现主要功能有以下几点: 1. ...
- Java Socket通信之TCP协议
文章目录 一. Java流套接字通信模型 1.TCP模型 2.TCP Socket常见API ServerSocket API Socket API 二.TCP流套接字编程 1.回显服务器 2.多线程 ...
- Java Socket实战之三:传输对象
转自:https://i.cnblogs.com/EditPosts.aspx?opt=1 前面两篇文章介绍了怎样建立Java Socket通信,这一篇说一下怎样使用Java Socket来传输对象. ...
- 【Java 网络编程】TCP 传输机制 ( 数据拆分 | 排序 | 顺序发送 | 顺序组装 | 超时重发 )
文章目录 I TCP 传输过程 II TCP 传输示例 III TCP 传输特殊情况处理 I TCP 传输过程 1. TCP 传输过程 : 排序 , 顺序发送 , 顺序组装 ; ① 排序 : TCP ...
- Java Socket笔记-利用tcp socket搭建CS模型
目录 基本概念 代码与实例 基本概念 这里采用的是TCP模型,只说明一点,在Java中有 import java.net.Socket; 这个包中TCP的用法个人觉得和QTcpSocket差不多(个人 ...
- java socket modbus_Java modbus tcp 编程有懂得吗?给个示例看看。。。十分感谢。
此问题已解决谢谢!如下:publicstaticByteQueuemodbusTCP(Stringip,intport,intstart,intreadLenth){ModbusFactorymodb ...
- JAVA Socket实现实时接收TCP消息,让你的服务端通信更高效!
本文主要介绍如何利用socket实现实时接收服务端发送的TCP消息. 目录 一.需要掌握 二.程序源码 三.运行演示 一.需要掌握 网络调试助手下载:https://www.aliyundrive.c ...
- Java基础23 网络编程 socket套接字流 TCP传输总结
一.网络编程的概念 1.计算机网络:将不同地区的计算机,使用网络来进行连接 实现不同地区的数据的交互与共享(互联时代) 2. 网络编程的三要素:IP地址 端口号 协议 3. ip地址:是在网络连接中 ...
最新文章
- 基于至强® 平台的内存数据库解决方案
- tomcat启动出现闪退_(转)Tomcat 启动后 “闪退”
- axios队列 vue_(十三 )Vue 封装axios(四种请求)及相关介绍
- 吴恩达神经网络1-2-2_图神经网络进行药物发现-第2部分
- java getdelay_java中DelayQueue的一个使用陷阱分析
- MATLAB教程(1) MATLAB 基础知识(2)
- 入门级控件 c# 1615014955
- window下hadoop、hbase的安装和eclipse开发环境配置
- goland 注释模板_Java程序员简历模板,怎样才是一份好的技术简历
- KX3552驱动的安装大九
- 将Word转换成PDF格式文档的方法
- Spark 练习之疫情分析
- 什么是RS-485?
- 《MySQL实战45讲》——学习笔记31 “误删数据的解决方案(删行/删表/删库/删实例)“
- 曾做erp开发工程师,谈下自己的经验
- 关键词拍卖中最优保留价的研究
- C++转换构造函数和隐式转换函数
- C# 用 iso-8859-5 (cyillic)字符转换的方法, 确定Unicode文字中是否有俄语字母
- Kafka生产者与消费者详解
- 深度解析推荐系统的算法原理
热门文章
- allegro PCB 检查报告中的Report DangLine以及禁用Antenna vias
- 蓝牙2.0和4.0 android,蓝牙适配器2.0和4.0区别,蓝牙标准的发展历程
- 西门子s7 计算机通讯,S7-1200与电脑网线通讯-工业支持中心-西门子中国
- 浅谈filter中的chain.doFilter(request, response)的作用
- 天朝皇叔:学习笔记 Qt 连接数据库sql server
- mysql索引执行顺序_mysql索引及sql执行顺序
- charles问题,chls.pro/ssl 证书无法在小米手机下载 ?(最详细的解决方案,其他手机也可以适用)
- CC254x到CC2640
- c语言初学——运算符和表达式
- XSS-labs靶场通关秘籍(level 17-20)