Socket机制用到的类有java.net.ServerSocket、java.net.Socket等。服务器端以监听端口号和接受队列长度为参数实例化ServerSocket类,缺省的队列长度是50,以accept()方法接收客户的连接。客户端则直接以服务器的地址和监听端口为参数实例化Socket类,连接服务器,缺省的连接方式是stream socket(区别于datagram socket)。
服务器端和客户端调用getInputStream()和getOutputStream()方法得到输入/输出流。如果以ObjectInputStream和ObjectOutputStream包装Socket的输入/输出流,要注意一点,ObjectOutputStream类实例化时要向底层流写入一个标识码,ObjectInputStream类相应的读入该标识码,如果实例化的次序不当会引起死锁。建议客户服务器两端都先实例化ObjectOutputStream。
因为调用ServerSocket类的accept()方法和Socket输入流的read()方法时会引起线程阻塞,所以应该用setSoTimeout()方法设置超时,缺省的设置是0,即超时永远不会发生。超时的判断是累计式的,一次设置后,每次调用引起的阻塞时间都从该值中扣除,直至另一次超时设置或有超时异常抛出。比如,某种服务需要三次调用read(),超时设置为1分钟,那么如果某次服务三次read()调用的总时间超过1分钟就会有异常抛出,如果要在同一个Socket上反复进行这种服务,就要在每次服务之前设置一次超时。
分享到:
相关推荐
java socket client 断线重连的简单实现 有什么意见可以提哦
JAVA语言SOCKET机制的研究
Java Socket 线程 实现多客户请求 机制 Java Socket 线程 实现多客户请求 机制
该文档详细描述如何实现高并发编程和运用Socket编程 Socket原理、计算机工作机制、文档包含整个实例源码。详细介绍了整个项目流程
基于socket java 语言网络通讯机制和程序设计
java进程间通讯机制代码----RMI、共享内存、Socket、管道,等方式,每种方法我都讲了原理和例子程序,很有参考意义。在网上很难找到的。
Java是一种可用于进行网络编程的语言,它提供了两种功能强大的网络支持机制:URL访问网络资源的类和用Socket通讯的类,来满足不同的要求。一是URL用于访问Internet网上资源的应用;另一种是针对client/server(客户端...
基于java socket机制的查字典小程序
在Merlin发布之前,异步输入输出流的应用还只是C,C++程序员的特殊武器 在Merlin中引入异步输入输出机制之后,Java程序员也可以利用它完成很多简洁却是高质量的代码了.本文将介绍怎样使用异步输入输出流来编写Socket...
学习java Socket的时候做的一个课程设计,串行化机制。。。功能不是很大,但都是自己小队精心制作
一个Socket连接管理器(心跳机制)
Socket长连接+心跳包+发送+读取,用到的全在这里了,自己看看哪里不需要的就不要添加了!代码很清晰很明白了!
java代码,客户端通过socket,将文件传输到服务器。
绍Java Socket网络传输的序列化机制
Java多线程机制及其在socket编程中的应用
Java多线程机制及其在socket编程中的应用.pdf
本篇文章主要介绍了JAVA中实现原生的 socket 通信机制原理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了Java实现心跳机制的方法,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
1. Socket 机制 Socket,又称为套接字,用于描述 IP 地址和端口。应用程序通常通过 socket向网络发出请求或者应答网络请求。Socket 就是为网络编程提供的一种机制: 通信两端都有 socket; 网络通信其实就是 socket ...
socket文件传输。用Socket通信机制在服务器和客户端之间传输文件