//服务端
@RunWith(JUnit4.class)
public class ServerSocketTest {
@Test
public void testServer() throws IOException{
ServerSocket serverSocket = new ServerSocket(8000);
while(true){
//一旦连接,返回的socket包含客户端信息的socket
Socket socket = serverSocket.accept();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
bw.write("host:"+socket.getInetAddress()+":"+socket.getPort()+"建立链接");
bw.flush();
bw.close();
}
}
}
/**
*
* @author lzw
* 客户端
*/
@RunWith(JUnit4.class)
public class SocketClient {
@Test
public void testClient() throws UnknownHostException, IOException{
String serverMsg = null;
//表示连接到服务器的 地址以及端口
SocketAddress address = new InetSocketAddress("19.95.103.112",8000);
Socket socket = new Socket();
//connectionTime 使用最小时间建立连接,latency 表示最小延迟 bandwidth 表示最高宽带
//三个参数根据任意整数来决定优先级,越大整数,优先级越高
socket.setPerformancePreferences(2, 1, 3);
//设置服务类型,用来描述服务的质量 0x02 低成本 0x04 高可靠性 0x08 最高吞吐量 0x10 最小延迟,还可以组合使用
// socket.setTrafficClass(0x02);
//标识是否紧急数据,false接收方不作处理,直接丢弃,true,接收方正常处理,除非有更高及的协议设置,否则效果不大,接收方不会判断是否紧急数据
// socket.setOOBInline(true);
//为ture时会监控连接是否活动,两个小时内没有交互,再等待12分钟,如果还是没有交互,那么会关联socket,false表示永远存在,哪怕服务器已经挂了
// socket.setKeepAlive(true);
//设置输入数据缓冲区大小,设置大了减少交互次数,对于网络游戏对数据即时性要求高的,应该设置更小的值
// socket.setReceiveBufferSize(0);
//设置写出缓冲区大小,同理setReceiveBufferSize
// socket.setSendBufferSize(0);
//必须在读取输入流之前设置,表示等待输入流数据超时时间。默认是0,无限等待
// socket.setSoTimeout(1000);
//发送方socket被调用close之后,是否延迟关闭,继续发送数据。等待时间超时才关闭。
// socket.setSoLinger(true, 30);
//当接收方socket被关闭的时候不会马上释放端口,而是接收完数据以后才释放,为了不让正在发送的数据,被下一个绑定到刚释放的端口上的SOCKET获取到,此方法必须在绑定端口之前设定,否则无效
// socket.setReuseAddress(true);
//是否使用Negale算法,false为使用,true为不是用。
// socket.setTcpNoDelay(true);
//连接等待1分钟,如果为0,那么将永远不超时
socket.connect(address,60000);//连接
System.out.println("localPort"+socket.getLocalPort());
System.out.println("port:"+socket);
InputStream inputStream = socket.getInputStream();
//读取服务端返回的数据
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
if((serverMsg = br.readLine())!=null){
System.out.println("服务器:"+serverMsg);
}
br.close();
}
}

Socket 参数笔记的更多相关文章

  1. Python Socket API 笔记

    将上节中的C#该成Python版的容易程度大大超出了我的意料之外.从来没有发现,仅仅用灰尘简单的几句话就实现了该程序的主要功能,可见python的简易和强大之处.这里先对SocketAPI 做一下总结 ...

  2. Linux内核 TCP/IP、Socket参数调优

    Linux内核 TCP/IP.Socket参数调优 2014-06-06  Harrison....   阅 9611  转 165 转藏到我的图书馆   微信分享:   Doc1: /proc/sy ...

  3. C# Socket编程笔记(转)

    C# Socket编程笔记 http://www.cnblogs.com/stg609/archive/2008/11/15/1333889.html TCP Socket:Server 端连接步骤: ...

  4. Monkey相关参数 笔记

    Monkey相关参数  笔记 Monkey是Android系统自带的一个命令行工具,可运行在模拟器里或实际设备中. Monkey可以向被测试的应用程序发送伪随机的用户事件流(如按键.触屏.手势等),实 ...

  5. socket参数的详解

    socket参数的详解 socket.socket(family=AF_INET,type=SOCK_STREAM,proto=0,fileno=None) 创建socket对象的参数说明: fami ...

  6. MVC OF UEditor 图片上传- 额外参数 笔记

    最近正巧需要用到UEditor ,因为需求,.需要把上传的图片数据上传到阿里云的OSS与记录图片相关信息到MS SQL中 . 不得已只能翻UEditor的实现代码>_<痛苦. 备忘笔记: ...

  7. Java Socket 学习笔记

    TCP协议的Socket编程 Socket:英文中的意思是插座.两个Java应用程序可以通过一个双向的网络通信连接实现数据交换,这个双向链路的一端称为一个Socket.Java中所有关于网络编程的类都 ...

  8. C# Socket学习笔记二

    小记:昨天咱们已经了解了Socket的通信原理,可是点对点的一次通信并不是我们想要的,那么今天那我们就继续学习异步通信,简单来说就是服务器端和客户端可以进行多次 互发信息的通信而不用担心通道会关闭.在 ...

  9. C# Socket学习笔记一

    小记:刚接触网络编程觉得网络是个神奇的东西,所以对它就很有兴趣,想了解下网络是如何进行进行数据传输的,那么开始第一天的学习吧!ReadyGo!!! 首先我们要了解一下几点内容: 1.网络中进程之间如何 ...

随机推荐

  1. Shell读取配置文件的方法

    参考:http://www.cnblogs.com/binbinjx/p/5680214.html 做批量软件安装自动化时,都喜欢用配置文件的方式改变参数,那怎么通过shell读取配置文件的配置呢?参 ...

  2. 函数式编程--为什么会出现lambda表达式?

    java一直处在发张和演化的过程中,其中有2个版本从根本上改变了代码的编写方式.第一个就是JDK5之后增加的泛型,还有一个就是现在介绍的函数式编程,lambda表达式. lambda表达式是java8 ...

  3. 在Tomcat中配置单点登录

    单点登录:Single Sign-On .概述 一旦你设置了realm和验证的方法,你就需要进行实际的用户登录处理.一般说来,对用户而言登录系统是一件很麻烦的事情,你必须尽量减少用户登录验证的次数.作 ...

  4. 解决IE中placeholder的兼容问题

    定义和用法 placeholder 属性提供可描述输入字段预期值的提示信息(hint). 该提示会在输入字段为空时显示,并会在字段获得焦点时消失. 注释:placeholder 属性适用于以下的 &l ...

  5. java IO(四):键盘录入

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  6. Regular Expression Syntax

    python的正则表达式 正则表达式的概念 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规 ...

  7. win7:你需要来自Administrators的权限才能对此文件进行修改的一个文件

    win7:你需要来自Administrators的权限才能对此文件进行修改的一个文件 Posted on 2010-11-29 09:54 寒宵飞飞 阅读(36117) 评论(1) 编辑 收藏 新建一 ...

  8. 【Spring】HttpMessageConverter的作用及替换

    相信使用过Spring的开发人员都用过@RequestBody.@ResponseBody注解,可以直接将输入解析成Json.将输出解析成Json,但HTTP 请求和响应是基于文本的,意味着浏览器和服 ...

  9. 【django之orm小练习】

    作业1 创建单表Book表,要求字段: 1 主键 nid 2 书名 title 3 价格 price 4 出版日期 pubDate 5 出版社 publisher(普通字符串字段) class Boo ...

  10. SQL性能优化的几点建议

    1. 索引:索引可以提高查询的速度,但不是使用带有索引的字段查询时,索引都会起作用,如下几种特殊情况下,有可能使用带有索引的字段查询时,索引没有起作用:1)使用LIKE关键字的查询语句 如果匹配字符串 ...