socket
xiejx618
这个作者很懒,什么都没留下…
展开
-
Tcp投票通信例子
用到的二进制编码:import java.io.*;/* Wire Format * 1 1 1 1 1 1 * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ * |转载 2016-04-14 20:59:00 · 692 阅读 · 0 评论 -
查找TcpSocket传递消息的结束边界方法
成帧方法import java.io.IOException; import java.io.OutputStream; public interface Framer { void frameMsg(byte[] message, OutputStream out) throws IOException; byte[] nextMsg() throws IOException; }转载 2016-04-14 20:55:09 · 1327 阅读 · 0 评论 -
Udp投票通信例子
用到的文本编码:import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner;public class VoteMsgTextCoder implements VoteMsgCoder { /* * Wir转载 2016-04-14 22:25:10 · 691 阅读 · 0 评论 -
Soket服务端多任务与阻塞超时
一.服务端多任务处理1.先创建一个Executor实例.将接受的每个客户端Socket当一项任务,提交给Executor执行。import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.concurrent.Executor; import java.util.c转载 2016-04-16 11:23:17 · 878 阅读 · 0 评论 -
Socket多接收者
通常服务端与客户端是一对一的通信方法(也叫单播),一对多服务(广播与多播),只有UDP Socket允许广播与多播. 广播:(本地)网络中的所有主机都会接收到一份数据副本 多播:消息发送给一个多播地址,网络只将数据分发给那些表示想要接收到该多播地址的数据的主机.广播ip4地址:255.255.255.255 多播ip4地址:224.0.0.0-239.255.255.255 多播例子:1.加转载 2016-04-16 14:53:29 · 722 阅读 · 0 评论 -
socket关闭
无论是服务端还是客户端,一旦有一方调用socket.close(),都表明此次通信终止,调用close会同时关闭输入输出.. 在回显例子,客户端知道接收完了数据,可以先调用close(),然后服务端再调用read将返回-1,表明服务端接收来自客户端的数据完成,然后服务端也可以调用close() 对于Http协议,客户端不知道服务端发送消息的大小,必须先由服务端关闭socket,然后客户端再关闭s转载 2016-04-16 14:54:39 · 4632 阅读 · 3 评论 -
socketNio
0≤mark≤position≤limit ≤capacityBuffer的clear(),flip(),rewind() Method Prepares Buffer for Position Limit Mark ByteBuffer.clear() read()/put() into buffer 0 capacity undefined ByteBu转载 2016-04-17 14:08:30 · 482 阅读 · 0 评论 -
关于socket
1.线程阻塞主要有以下四方面原因: a.线程执行了Thread.sleep(int n)方法,线程放弃CPU,睡眠n毫秒,然后恢复运行. b.线程要执行一段同步代码,由于无法获得相关的同步锁,只好进入阻塞状态,等到获得了同步锁,才能恢复运行. c.线程执行了一个对象的wait()方法,进入阻塞状态,只有等到其他线程执行了该对象的notify()或notifyAll()方法,才可能将其唤醒.原创 2014-02-28 13:19:30 · 1067 阅读 · 0 评论