`
lemhion
  • 浏览: 8725 次
  • 性别: Icon_minigender_1
  • 来自: 福建
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java TCP/IP Socket 学习总结 (二)

阅读更多
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 编程(原书第2版)pdf+源码

    这本书的第二版深入探讨了如何使用Java实现TCP/IP协议栈的socket接口,为开发者提供了全面的理论知识和实践指导。 首先,我们需要理解TCP/IP模型,它是互联网通信的基础,包括四层:应用层、传输层、网络层和链路层...

    Java TCP IP Socket编程(原书第2版).

    《Java TCP/IP Socket编程(原书第2版)》基于TCP/IP Socket相关原理,对如何在Java中进行Socket编程作了深入浅出的介绍。《Java TCP/IP Socket编程(原书第2版)》内容简明扼要,条理清晰,并在讲解相应的概念或编程...

    Java+TCP/IP+Socket编程++原书第2版.pdf

    TCP/IP(Transmission Control Protocol/Internet Protocol)协议栈是互联网通信的基础,而Socket是Java中实现TCP/IP通信的关键组件。本篇将深入探讨Java如何利用TCP/IP协议通过Socket进行网络编程。 TCP/IP协议族...

    Java TCP/IP Socket编程

    Java TCP/IP Socket编程是Java网络编程中的重要组成部分,它提供了在网络间进行数据传输的基础机制。TCP(Transmission Control Protocol)和IP(Internet Protocol)是互联网上最基础的通信协议,而Socket则是TCP/...

    Java TCP/IP Socket编程原书第2版.pdf

    Java TCP/IP Socket编程原书第2版.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!

    Java TCP/IP Socket编程 原书第2版

    现在几乎所有互联网应用程序都使用Java Socket进行通信,而本书专注的、教导式的方法,使读者能够快速掌握所有计算机通信的任务和技术要点。 本书特点: 对Socket编程的重点进行了集中简明的介绍,以使读者能够迅速...

    TCP/IP Socket in C/Java

    两本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编程是网络通信领域中的核心技术,广泛应用于服务器端和客户端之间的数据传输。本资源包含一本关于Java TCP/IP Socket编程的书籍及其配套源代码,对于深入理解Socket编程至关重要。 书籍《Java ...

    Java TCP /IP socket 自制简易聊天工具

    Java TCP/IP Socket编程是网络通信领域中的核心技术,它允许两台计算机通过Internet进行双向通信。在这个自制品中,我们看到的是一个基于Java实现的简单聊天工具,它利用Socket API构建了一个用户界面,使得用户可以...

    Java+TCP/IP+Socket编程 原书第2版

    在7CP/IP Socket首次发布时,Java作为一个新的未被关注的编程语 言刚出现。然而,自2001年以来,Java的网络编程能力已经得到了很大程度的扩展,而且 持续的应用优势已经使其成为了一个占主导地位的平台。考虑到Java...

    Java TCP-IP Socket编程-卡尔弗特.pdf

    Java TCP/IP Socket编程是网络通信领域中的核心技术,尤其在Java编程中,Socket是实现客户端与服务器之间通信的基础。本资料“Java TCP-IP Socket编程-卡尔弗特.pdf”旨在深入探讨如何利用Java语言进行TCP/IP套接字...

    基于TCP/IP协议的Socket编程

    Java实现的Socket编程是基于TCP/IP协议的,它提供了一个可靠的数据流服务,可以实现客户端和服务器之间的数据交换。Java中的Socket类和ServerSocket类是两种基本的套接字类,Socket类用于建立客户端和服务器之间的...

    Socket服务端客户端以tcp/ip协议发送接收报文

    总结来说,Java Socket编程为TCP/IP通信提供了一种强大的工具,允许开发者构建可靠、高效的网络应用程序。服务端和客户端的实现通常涉及线程管理和错误处理,以确保系统的稳定性和健壮性。通过学习和实践这些基本...

    《Java TCP IP Socket编程(原书第2版)》PDF

    《Java TCP IP Socket编程(原书第2版)》

    TCP.IP.Sockets.in.Java.2nd.Edition.pdf (TCP/IP Socket 编程)

    根据提供的文件信息,...以上知识点构成了对《TCP/IP Sockets in Java, 2nd Edition.pdf》文件的详细解析,涵盖了TCP/IP和Socket编程的基础知识,Java实现网络通信的方法,以及网络编程在实际中的应用实例和高级主题。

    Java_TCP_IP_Socket编程(原书第2版)

    Java TCP/IP Socket编程是网络通信领域中的核心技术,尤其在Java平台中,Socket是实现客户端与服务器之间通信的基础。原书第二版深入浅出地讲解了Java Socket编程的各个方面,为开发者提供了全面的学习资源。以下是...

    Java socket tcp/ip

    总结,Java Socket TCP/IP编程涉及网络通信的基本原理和Java API的使用,通过Socket类与ServerSocket类,我们可以构建可靠的、基于TCP的网络应用程序。理解并熟练运用Socket编程,能帮助开发者构建复杂、高效、可...

Global site tag (gtag.js) - Google Analytics