java为TCP协议提供了两个类:Socket和ServerSocket。一个Socket实例代表了一个TCP连接的一端。一个TCP连接(TCP connection)是一条抽象的双向通道,两端分别由IP地址和端口号确定。在开始通信之前,要建立一个TCP连接,这需要先由客户端TCP向服务器端TCP发送连接请求。ServerSocket实例则监听TCP连接请求,并为每个请求创建新的Socket实例。也就是说,服务器端要同时处理ServerSocket实例和Socket实例,而客户端只需要使用Socket实例。
典型的TCP客户端要经过下面三步:
1、创建一个Socket实例:构造函数向指定的远程主机和端口建立一个TCP连接。
2、通过套接字的输入输出流(I/O Stream)进行通信:一个Socket连接实例包括一个InputStream和一个OutputStram。
3、使用Sokcet类的close()方法关闭连接。
private static final int BUFFER_SIZE = 32;
public static void main(String[] args) throws IOException{
String server = "127.0.0.1";
int serverPort = 7777;
Socket socket = new Socket(server,serverPort);
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
byte[] data = "test".getBytes();
out.write(data);
byte[] ib = new byte[BUFFER_SIZE];
while(in.read(ib) != -1){
System.out.println("client: " +new String(ib));
}
socket.close();
}
}
服务器端的工作是建立一个通信终端,并被动地等待客户端的连接。典型的TCP服务器执行如下两步工作:
1、创建一个ServerSocket实例并指向本地端口。此套接字的功能是监听该指定端口收到的连接。
2、重复执行;
a、调用ServerSocket的accept()方法以获取下一个客户端连接。基于新建立的客户端连接,创建一个Socket实例,并由accept()返回。
b、使用所返回的Socket实例的InputStream和OutputStream与客户端进行通信。
c、通信完成后,调用Socket类的close()方法关闭客户端套接字连接。
public class TCPEchoServer {
private static final int BUFFER_SIZE = 40;
public static void main(String[] args) throws IOException{
int serverPort = 7777;
ServerSocket serverSocket = new ServerSocket(serverPort);
byte[] ib = new byte[BUFFER_SIZE];
byte[] ob = "hello".getBytes();
System.out.println("Server start ....." );
while(true){
Socket socket = serverSocket.accept();
System.out.println("Handling Server at " + socket.getLocalSocketAddress());
System.out.println("Handling client at " + socket.getRemoteSocketAddress());
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
while(in.read(ib) != -1){
System.out.println("server :" + new String(ib));
out.write(ob);
}
socket.close();
}
}
}
分享到:
相关推荐
这本书的第二版深入探讨了如何使用Java实现TCP/IP协议栈的socket接口,为开发者提供了全面的理论知识和实践指导。 首先,我们需要理解TCP/IP模型,它是互联网通信的基础,包括四层:应用层、传输层、网络层和链路层...
《Java TCP/IP Socket编程(原书第2版)》基于TCP/IP Socket相关原理,对如何在Java中进行Socket编程作了深入浅出的介绍。《Java TCP/IP Socket编程(原书第2版)》内容简明扼要,条理清晰,并在讲解相应的概念或编程...
TCP/IP(Transmission Control Protocol/Internet Protocol)协议栈是互联网通信的基础,而Socket是Java中实现TCP/IP通信的关键组件。本篇将深入探讨Java如何利用TCP/IP协议通过Socket进行网络编程。 TCP/IP协议族...
Java TCP/IP Socket编程是Java网络编程中的重要组成部分,它提供了在网络间进行数据传输的基础机制。TCP(Transmission Control Protocol)和IP(Internet Protocol)是互联网上最基础的通信协议,而Socket则是TCP/...
Java TCP/IP Socket编程原书第2版.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
现在几乎所有互联网应用程序都使用Java Socket进行通信,而本书专注的、教导式的方法,使读者能够快速掌握所有计算机通信的任务和技术要点。 本书特点: 对Socket编程的重点进行了集中简明的介绍,以使读者能够迅速...
两本TCP/IP socket编程书,分别是C语言和Java语言版的。都是文字版的pdf文档。 1. TCP/IP Sockets in Java (2th Edtion) 2. TCP/IP Sockets in C *Series Editor: Michael J. Donahoo
Java TCP/IP Socket编程是网络通信领域中的核心技术,广泛应用于服务器端和客户端之间的数据传输。本资源包含一本关于Java TCP/IP Socket编程的书籍及其配套源代码,对于深入理解Socket编程至关重要。 书籍《Java ...
Java TCP/IP Socket编程是网络通信领域中的核心技术,它允许两台计算机通过Internet进行双向通信。在这个自制品中,我们看到的是一个基于Java实现的简单聊天工具,它利用Socket API构建了一个用户界面,使得用户可以...
在7CP/IP Socket首次发布时,Java作为一个新的未被关注的编程语 言刚出现。然而,自2001年以来,Java的网络编程能力已经得到了很大程度的扩展,而且 持续的应用优势已经使其成为了一个占主导地位的平台。考虑到Java...
Java TCP/IP Socket编程是网络通信领域中的核心技术,尤其在Java编程中,Socket是实现客户端与服务器之间通信的基础。本资料“Java TCP-IP Socket编程-卡尔弗特.pdf”旨在深入探讨如何利用Java语言进行TCP/IP套接字...
Java实现的Socket编程是基于TCP/IP协议的,它提供了一个可靠的数据流服务,可以实现客户端和服务器之间的数据交换。Java中的Socket类和ServerSocket类是两种基本的套接字类,Socket类用于建立客户端和服务器之间的...
总结来说,Java Socket编程为TCP/IP通信提供了一种强大的工具,允许开发者构建可靠、高效的网络应用程序。服务端和客户端的实现通常涉及线程管理和错误处理,以确保系统的稳定性和健壮性。通过学习和实践这些基本...
《Java TCP IP Socket编程(原书第2版)》
根据提供的文件信息,...以上知识点构成了对《TCP/IP Sockets in Java, 2nd Edition.pdf》文件的详细解析,涵盖了TCP/IP和Socket编程的基础知识,Java实现网络通信的方法,以及网络编程在实际中的应用实例和高级主题。
Java TCP/IP Socket编程是网络通信领域中的核心技术,尤其在Java平台中,Socket是实现客户端与服务器之间通信的基础。原书第二版深入浅出地讲解了Java Socket编程的各个方面,为开发者提供了全面的学习资源。以下是...
总结,Java Socket TCP/IP编程涉及网络通信的基本原理和Java API的使用,通过Socket类与ServerSocket类,我们可以构建可靠的、基于TCP的网络应用程序。理解并熟练运用Socket编程,能帮助开发者构建复杂、高效、可...