一:客户端向服务端发送数据。

服务端:

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经典案例-发送数据的更多相关文章

  1. Java Socket 服务端发送数据 客户端接收数据

    服务端: package com.thinkgem.wlw.modules.api.test.socket; /** * @Author: zhouhe * @Date: 2019/4/8 9:30 ...

  2. python使用socket向客户端发送数据的方法

    在使用locust测试长连接的时候,所有的请求全部faillure了,所以想到手动写一个连接脚本测试一下是否能连通 因为centos7自带python2.7所以用python写一个比较方便. #!/u ...

  3. 一文搞懂 Netty 发送数据全流程 | 你想知道的细节全在这里

    欢迎关注公众号:bin的技术小屋,如果大家在看文章的时候发现图片加载不了,可以到公众号查看原文 本系列Netty源码解析文章基于 4.1.56.Final版本 在<Netty如何高效接收网络数据 ...

  4. [C#参考]利用Socket连续发送数据

    这个例子只是一个简单的连续发送数据,接收数据的DEMO.因为最近做一个项目,要求robot连续的通过Socket传回自己的当前的位置坐标,然后客户端接收到坐标信息,在本地绘制地图,实时显示robot的 ...

  5. (原)关于udp的socket发送数据耗时的问题探讨

    转载请注明出处:http://www.cnblogs.com/lihaiping/p/6811791.html 本学习笔记,仅用于问题探讨,如有不同,可以讨论. 最近在看流媒体分发服务器的相关代码,其 ...

  6. 对于socket发送数据时是否要加锁及write read的阻塞非阻塞

    偶尔讨论到了socket发送数据时是否应该加锁的问题,就在网上查了一下,下面是大神陈硕的答案 对于 UDP,多线程读写同一个 socket 不用加锁,不过更好的做法是每个线程有自己的 socket,避 ...

  7. .net 中异步SOCKET发送数据时碰到的内存问题

    做CS的开发一直都是这样的方式: server端用 C++编写,采用IOCP机制处理大量客户端连接.数据接收发送的问题 client端用 C++ 或C# 写,没什么特殊要求. 最近工作时间上比较宽裕, ...

  8. Android(java)学习笔记80:UDP协议发送数据

    UDP协议发送数据:我们总是先运行接收端,再运行发送端发送端: 1 package cn.itcast_02; import java.io.IOException; import java.net. ...

  9. 经典案例之MouseJack

    引言:在昨天的文章<无线键鼠监听与劫持>中,我们提到今天会向您介绍一个无线键鼠的监听与劫持的经典案例,<MouseJack>:MouseJack能利用无线鼠标和键盘存在的一些问 ...

随机推荐

  1. 【Web前端开发】---自学转行roadmap

    [Web前端开发] 自学转行roadmap: ● html/css ● 京东项目实操 ● javascript 基础 ● webapi ● javascrip高级 ● jquery基础 ● Ajax ...

  2. div拖拽效果 JQuery

    <!DOCTYPE html> <html> <head> <meta name="description" content=" ...

  3. SAP Business One对象清单

    中文描述 对象号 表名 主键 英文描述 总账科目 1 OACT AcctCode G/L Accounts 业务伙伴 2 OCRD CardCode Business Partner 银行代码 3 O ...

  4. 阿里云ECS部署Redis主备哨兵集群遇到的问题

    一.部署 详细部署步骤:https://blog.csdn.net/lihongtai/article/details/82826809 Redis5.0版本需要注意的参数配置:https://www ...

  5. Hadoop_MapReduce_03

    1. MapReduce入门 1.1 MapReduce的思想 MapReduce的思想核心是"分而治之" , 适用于大量的复杂的任务处理场景 (大规模数据处理场景) . Map负 ...

  6. JUC-6-Callable接口

    创建线程的方式                  不能有返回值,且不能声明抛出异常                                                           ...

  7. Java之缓冲流(字节/字符缓冲流)

    概述 缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流: BufferedInputStream , BufferedOutputStrea ...

  8. localStorage和sessionStorage的共同点和区别

    共同点: 1.localStorage和sessionStorage都是用来存储客户端临时信息的对象. 2.他们均只能存储字符串类型的对象. 3.不同浏览器无法共享localStorage或sessi ...

  9. IS Kali: installed chiess messy code problem

    apt-get install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy init 6

  10. 苹果_公司开发者账号_申请DUNS number

    申请DUNS number 注意事项:a.公司英文名称,例如:北京京城科技有限公司,Beijing Jingcheng Technology Co., Ltd.(Co.和Ltd.都是缩写,中间用“逗号 ...