socket经典案例-发送数据
一:客户端向服务端发送数据。
服务端:
package com.company.s; import java.io.*;
import java.net.ServerSocket;
import java.net.Socket; public class Server {
public static void main(String[] args) throws IOException{
char[] charArray=new char[3];
ServerSocket serverSocket=new ServerSocket(8088);
System.out.println("accept begin="+System.currentTimeMillis());
Socket socket=serverSocket.accept();
System.out.println("accept end="+System.currentTimeMillis());
InputStream inputStream=socket.getInputStream();
InputStreamReader inputStreamReader=new InputStreamReader(inputStream);
System.out.println("read begin "+System.currentTimeMillis());
int readLength=inputStreamReader.read(charArray);//阻塞
while (readLength!=-1){
String newString=new String(charArray,0,readLength);
System.out.println(newString);
readLength=inputStreamReader.read(charArray);
}
System.out.println("read end "+System.currentTimeMillis());
inputStream.close();
socket.close();
serverSocket.close();
}
}
2.客户端代码:
package com.company.s; import java.io.OutputStream;
import java.net.Socket; public class Client {
public static void main(String[] args) throws Exception{
System.out.println("socket begin "+System.currentTimeMillis());
Socket socket=new Socket("localhost",8088);
System.out.println("socket end "+System.currentTimeMillis());
Thread.sleep(3000);
OutputStream outputStream=socket.getOutputStream();
outputStream.write("我是中国人".getBytes());
outputStream.close();
socket.close();
}
}
二:服务端向客户端发送数据
1.server.java
package com.company.s; import java.io.*;
import java.net.ServerSocket;
import java.net.Socket; public class Server {
public static void main(String[] args) throws IOException{
ServerSocket serverSocket=new ServerSocket(8088);
System.out.println("accept begin="+System.currentTimeMillis());
Socket socket=serverSocket.accept();
System.out.println("accept end="+System.currentTimeMillis());
OutputStream outputStream=socket.getOutputStream();
outputStream.write("我是思思博士".getBytes());
outputStream.close();
socket.close();
serverSocket.close();
}
}
2.客户端代码:
package com.company.s; import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket; public class Client {
public static void main(String[] args) throws Exception{
System.out.println("socket begin "+System.currentTimeMillis());
Socket socket=new Socket("localhost",8088);
System.out.println("socket end "+System.currentTimeMillis());
char[] charBuffer=new char[3];
InputStream inputStream=socket.getInputStream();
InputStreamReader inputStreamReader=new InputStreamReader(inputStream);
System.out.println("serverB begin "+System.currentTimeMillis());
int readLength=inputStreamReader.read(charBuffer);
System.out.println("serverB end "+System.currentTimeMillis());
while (readLength!=-1){
System.out.println(new String(charBuffer,0,readLength));
readLength=inputStreamReader.read(charBuffer);
}
System.out.println();
inputStream.close();
socket.close(); System.out.println("client 运行结束="+System.currentTimeMillis()); }
}
socket经典案例-发送数据的更多相关文章
- Java Socket 服务端发送数据 客户端接收数据
服务端: package com.thinkgem.wlw.modules.api.test.socket; /** * @Author: zhouhe * @Date: 2019/4/8 9:30 ...
- python使用socket向客户端发送数据的方法
在使用locust测试长连接的时候,所有的请求全部faillure了,所以想到手动写一个连接脚本测试一下是否能连通 因为centos7自带python2.7所以用python写一个比较方便. #!/u ...
- 一文搞懂 Netty 发送数据全流程 | 你想知道的细节全在这里
欢迎关注公众号:bin的技术小屋,如果大家在看文章的时候发现图片加载不了,可以到公众号查看原文 本系列Netty源码解析文章基于 4.1.56.Final版本 在<Netty如何高效接收网络数据 ...
- [C#参考]利用Socket连续发送数据
这个例子只是一个简单的连续发送数据,接收数据的DEMO.因为最近做一个项目,要求robot连续的通过Socket传回自己的当前的位置坐标,然后客户端接收到坐标信息,在本地绘制地图,实时显示robot的 ...
- (原)关于udp的socket发送数据耗时的问题探讨
转载请注明出处:http://www.cnblogs.com/lihaiping/p/6811791.html 本学习笔记,仅用于问题探讨,如有不同,可以讨论. 最近在看流媒体分发服务器的相关代码,其 ...
- 对于socket发送数据时是否要加锁及write read的阻塞非阻塞
偶尔讨论到了socket发送数据时是否应该加锁的问题,就在网上查了一下,下面是大神陈硕的答案 对于 UDP,多线程读写同一个 socket 不用加锁,不过更好的做法是每个线程有自己的 socket,避 ...
- .net 中异步SOCKET发送数据时碰到的内存问题
做CS的开发一直都是这样的方式: server端用 C++编写,采用IOCP机制处理大量客户端连接.数据接收发送的问题 client端用 C++ 或C# 写,没什么特殊要求. 最近工作时间上比较宽裕, ...
- Android(java)学习笔记80:UDP协议发送数据
UDP协议发送数据:我们总是先运行接收端,再运行发送端发送端: 1 package cn.itcast_02; import java.io.IOException; import java.net. ...
- 经典案例之MouseJack
引言:在昨天的文章<无线键鼠监听与劫持>中,我们提到今天会向您介绍一个无线键鼠的监听与劫持的经典案例,<MouseJack>:MouseJack能利用无线鼠标和键盘存在的一些问 ...
随机推荐
- 记MAC地址、磁盘序列号的获取
import java.io.*; import java.net.Inet4Address; import java.net.InetAddress; import java.net.Network ...
- python内置模块-datetime
摘录 廖雪峰网站 datetime是python内置的处理日期和时间的标准库 获取当前日期和时间 >>> from datetime import datetime >> ...
- Linux-进程的观察
16.1.1 进程与程序 ·程序 (program):通常为 binary program ,放置在储存媒体中 (如硬盘.光盘.软盘.磁带等), 为实体文 件的型态存在: ·进程 (process): ...
- Linux 使用vi命令的教程
一.首先用vi命令打卡要编辑的文件: 注意:vi命令的使用如下: 打开或新建文件,并将光标至于第一行首:[root@centos6 /]# vi /etc/my.cnf 打开文件,并将光标移至最后一行 ...
- 8 种经常被忽视的 SQL 错误用法,你有没有踩过坑?
1.LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方.比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引 ...
- Java生鲜电商平台-电商会员体系搭建
Java生鲜电商平台-电商会员体系搭建 说明:因为之前一直从事的是B端的生鲜电商方面的产品,对会员体系方面有深刻的理解,今天来聊一聊会员体系的搭建. 明确会员体系的目的 首先我们需要明确的知道,搭建电 ...
- Change Style of Navigation Items 更改导航项的样式
In this lesson, you will learn how to change the style of navigation items in a WinForms XAF applica ...
- DevExpress Applications<3>
Project Template Project Template Information Template Name Template Description Controls and Compon ...
- UI_DEV_Environment 之 StoryBook
写在前面 由于本文主要集中关注与工具使用,所以不可能完全介绍工具的所有功能,所以要想了解更多,可以自己去各自官方网站上查看. github examples 什么是UI开发环境 UI开发环境专注于用户 ...
- cesium 雷达扫描(附源码下载)
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...