1、socket是一套api,提供了tcp/udp通信的功能,HttpURLConnect底层也是通过socket实现,只是传的内容是http报文
2、socket有两种(1)流套接字Socket,SocketServer;(2)数据报套接字DatapramSocket
3、socket连接、读和写都是阻塞的,可以利用nio实现非阻塞操作
4、Socket(InetAddress address, int port)初始化socket的阻塞时间由系统决定,
可以使用Socket()生成一个空socket和再利用connect(SocketAddress endpoint,int timeout)设置阻塞时间
5、accetp()和read()方法可以使用setSoTimeout()设置阻塞超时时间;write()不能设置阻塞超时时间
6、socket如果没有指定本地端口,系统会随机分配端口,由于tcp存在Time-wait特性,如果time-wait时间过长会出差端口耗尽问题
7、当缓冲区分配不合理时可能出现死锁问题,可以将读和写使用不同的线程
8、流套接字没有边界特性,需要在程序中定义自己的传输协议
2、socket有两种(1)流套接字Socket,SocketServer;(2)数据报套接字DatapramSocket
3、socket连接、读和写都是阻塞的,可以利用nio实现非阻塞操作
4、Socket(InetAddress address, int port)初始化socket的阻塞时间由系统决定,
可以使用Socket()生成一个空socket和再利用connect(SocketAddress endpoint,int timeout)设置阻塞时间
5、accetp()和read()方法可以使用setSoTimeout()设置阻塞超时时间;write()不能设置阻塞超时时间
6、socket如果没有指定本地端口,系统会随机分配端口,由于tcp存在Time-wait特性,如果time-wait时间过长会出差端口耗尽问题
7、当缓冲区分配不合理时可能出现死锁问题,可以将读和写使用不同的线程
8、流套接字没有边界特性,需要在程序中定义自己的传输协议