在java中实现TCP协议编程
来源:互联网 发布:珍妮曲奇授权的淘宝店 编辑:程序博客网 时间:2024/04/30 11:41
ServerSocket:编写TCP网络服务程序,首先要用到java.net.ServerSocket类用以创建服务器Socket
构造方法:
ServerSocket(int port):创建绑定到特定端口的服务器套接字
ServerSocket(int port, int backlog):利用指定的backlog(服务器忙时保持连接请求的等待客户数量),创建服务器套接字并将其绑定到指定的本地端口号。
ServerSocket(int port, int backlog, InetAddress bindAddr):使用指定的端口、侦听 backlog 和要绑定到的本地 IP 地址创建服务器。
Socket:客户端要与服务器建立连接,必须先创建一个Socket对象
常用构造方法
Socket(String host, int port):创建一个流套接字并将其连接到指定主机上的指定端口号。
Socket(InetAddress address, int port):创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
服务器端程序调用ServerSocket类中的accept()方法等待客户端的连接请求,一旦accept()接收了客户端连接请求,该方法返回一个与该客户端建立了专线连接的Socket对象,不用程序去创建这个Socket对象。建立了连接的两个Socket是以IO流的方式进行数据交换的,Java提供了Socket类中的getInputStream()返回Socket的输入流对象,getOutputStream()返回Socket的输出流对象
创建一个TCP服务器端程序的步骤:
1.建立一个服务器socket并开始监听.
2.使用accept()方法取得新的连接.
3.建立输入和输出流.
4.在已有的协议上产生会话.
5.关闭客户端流和socket.
6.回到第二步或者到第七步.
7.关闭服务器socket
ServerSocket server=new ServerSocket(port)
Socket s=server.accept();
ObjectInputStream in=new ObjectInputStream(s.getInputStream());
ObjectOutputStream out=new ObjectOutputStream(s.getOutputStream());
out.close();
in.close();
s.close();
创建一个TCP客户端程序的步骤:
1).创建Socket
2). 获得I/O流
3). 对I/O流进行读写操作
4). 关闭I/O流
5). 关闭Socket
Socket connection = new Socket(127.0.0.1, 7777);
ObjectInputStream input=new ObjectInputStream(connection.getInputStream());
ObjectOutputStream utput=new ObjectOutputStream(connection.getOutputStream());
input.close();
output.close();
connection.close();
注意:
1、不要在服务程序中出现static属性,因为是所有客户端共享的;
2、不要从两个Socket中创建流用于通讯,会出现通讯错误,原因:流的头不一样
3、不要从一个客户端多次创建TCP链接,那就成了两个客户端了;
4、要控制链接数,否则资源可能不够用,使用方法如下:
public ServerSocket(int port,int backlog) throws IOException
backlog:链接数
- 在java中实现TCP协议编程
- 在Java中实现TCP协议编程
- 11 java 王少飞-在Java中实现TCP协议编程
- 在Java中实现TCP协议编程续之实现文本和图片的上传代码
- 在Java中实现UDP协议编程
- 在Java中实现UDP协议编程
- 在java中实现UDP协议编程
- java中进行socket编程实现tcp、udp协议总结
- Java中网络编程之TCP协议
- java中网络编程TCP协议
- 在Java中实现UDP协议编程的方法
- 在Java中实现UDP协议编程的方法[转]
- 在Java中实现UDP协议编程的方法
- 在Java中实现UDP协议编程的方法
- 网络基础知识、在Java中实现UDP协议编程
- 在Java中实现UDP协议编程(DatagramSocket/DatagramPacket)
- 在Java中实现UDP协议编程(DatagramSocket/DatagramPacket)
- 在Java中实现UDP协议编程(DatagramSocket/DatagramPacket)
- WebVulScan是一个Web应用程序漏洞扫描器
- WindowXP中NTFS格式硬盘权限设置
- Lua之迭代器和范性for
- 【C编程练习】华为2013校园招聘机试题3:对源字符串中得字符串进行查找替换并返回动态申请空间的指针char* Fun(char*pSrc,char*pOldStr, char*pNewStr)
- 将文件转化成二进制并读取保存该文件
- 在java中实现TCP协议编程
- 九月中旬
- 从那一天起,你就成了我的全部
- 【转载】你的PagedLOD 为什么没有卸载
- 细数电脑史上10大强悍黑客
- hdu1061
- Dtree+jQuery实现动态树结构
- android中JSON数据的读写方法
- Ubuntu下安装Mysql 以及mysql-query-browser