1、socket是网络编程的说法,既然是网络编程那么就有服务器端和客户端,首先创建两个类,TCPSocket.java用于当做服务器端,TCPClient.java用于当做客户端,
2、首先编写服务器端,在Java中提供java.net.ServerSocket类来当做网络服务器,构造函数需要一个网络接 口,以6666为例,代码如下:
ServerSocket ss = new ServerSocket(6666);
此时,服务器端已经能够监听客户端请求。
3、编写客户端,在Java中提供java.net.Socket类来当做网络客户端,构造函数需要IP地址和网络接口,这里 的 接口应指明是哪个服务器的接口,在本例中,应该是上面服务器中指定的6666,代码如下:
Socket s = new Socket("127.0.0.1", 6666);
此时,客户端已经向服务器端发出连接请求。
4、客户端发出请求后,服务器端能够监听到,而要接受这个连接请求还要有如下代码:
Socket s = ss.accept();
此时,服务器端和客户端已经能够连接上了。
服务器端完整代码:
import java.net.*; public class TCPServer { public static void main(String[] args) throws Exception { ServerSocket ss = new ServerSocket(6666); Socket s = ss.accept(); System.out.println("a client connect!"); } }
客户端完整代码:
import java.net.*; public class TCPClient { public static void main(String[] args) throws Exception { Socket s = new Socket("127.0.0.1", 6666); } }
在运行本例时,应先运行服务器端,然后运行客户端。
当客户端发送一次连接请求后,服务器端接受到后,服务器就停止了,这不符合服务器接受多个用户的要求,所以更改服务器端代码:
import java.net.*; public class TCPServer { public static void main(String[] args) throws Exception { ServerSocket ss = new ServerSocket(6666); while(true) { Socket s = ss.accept(); System.out.println("a client connect!"); } } }
accept()方法是阻塞式的方法,只要没有连接请求就会一直等下去,直到有客户端的连接请求发过来,接受之后经过while循环在等下一个请求,经过这个死循环就能实现接受多个用户的连接请求。
以下是用Java数据流由客户端向服务器端发送消息的超小型demo:
服务器端:
import java.net.*; import java.io.*; public class TCPServer { public static void main(String[] args) throws Exception { ServerSocket ss = new ServerSocket(6666); while(true) { Socket s = ss.accept(); System.out.println("a client connect!"); DataInputStream dis = new DataInputStream(s.getInputStream()); System.out.println(dis.readUTF()); dis.close(); s.close(); } } }
客户端:
import java.net.*; import java.io.*; public class TCPClient { public static void main(String[] args) throws Exception { Socket s = new Socket("127.0.0.1", 6666); OutputStream os = s.getOutputStream(); DataOutputStream dos = new DataOutputStream(os); Thread.sleep(30000); dos.writeUTF("hello server!"); dos.flush(); dos.close(); s.close(); } }
相关推荐
《Java TCP/IP Socket编程》(原书第2版)是一本深入探讨Java中Socket编程的专著,旨在帮助读者理解并掌握如何在Java环境中利用TCP/IP协议进行网络通信。本书不仅详细介绍了Socket的工作原理,还提供了丰富的示例...
Java TCP/IP Socket编程是网络通信领域中的核心技术,广泛应用于服务器端和客户端之间的数据传输。本资源包含第二版书籍的相关源码,旨在帮助开发者深入理解并实践Socket编程。以下是关于Java TCP/IP Socket编程的...
Java TCP/IP Socket编程是网络通信领域中的核心技术,尤其在Java平台中,Socket是实现客户端与服务器之间通信的基础。原书第二版深入浅出地讲解了Java Socket编程的各个方面,为开发者提供了全面的学习资源。以下是...
Java TCP/IP Socket编程是Java网络通信的核心技术,广泛应用于服务器端和客户端之间的数据传输。这本书的第二版深入探讨了如何使用Java实现TCP/IP协议栈的socket接口,为开发者提供了全面的理论知识和实践指导。 ...
Java TCP/IP Socket编程是网络通信领域中的核心技术,尤其在Java编程中,Socket是实现客户端与服务器之间通信的基础。本资料“Java TCP-IP Socket编程-卡尔弗特.pdf”旨在深入探讨如何利用Java语言进行TCP/IP套接字...
总的来说,《Java + TCP/IP + Socket编程++ 原书第2版》可能会涵盖这些主题:TCP/IP协议基础,Java Socket API的使用,异常处理,多线程编程,以及网络编程的最佳实践。这本书将帮助开发者深入理解如何在Java环境中...
在计算机网络领域,TCP/IP是一组用于互联网数据传输的协议,而Socket编程则是实现这些协议功能...通过上述知识点的介绍,可以了解Java TCP/IP Socket编程的基础和进阶内容,以及如何利用Java语言开发高性能的网络应用。
- NIO(非阻塞I/O)的`java.nio`包提供了更高效的Socket编程模型,适用于高并发场景。 总之,Java的Socket编程提供了强大的能力来构建网络应用程序。通过理解`Socket`和`ServerSocket`类,以及如何使用它们进行...
压缩包文件"TCPSocket"可能包含了示例代码,这些代码可以帮助初学者更好地理解TCP Socket编程的实践。通过阅读和运行这些代码,你可以学习如何在Python、C++、Java等语言中实现TCP Socket客户端和服务端。 在编程...
Java TCPIP Socket编程是Java开发语言在后端服务中实现网络通信的重要技术,它基于Apache等开源库提供了丰富的API来创建高效、可靠的网络连接。本章将深入探讨Socket编程的基本概念和实现方法。 1. 计算机网络、...
Socket编程主要用于实现客户端和服务器之间的通信,基于客户机/服务器模型。在这个模型中,服务器端通常处于被动等待状态,监听特定端口的连接请求,而客户端则主动发起连接。 在Java中,Socket编程主要涉及两个...
总结一下,本示例中的Java TCP Socket编程展示了如何使用Java的Socket类创建一个简单的服务器,它接收客户端的请求并返回响应。客户端则通过Socket连接到服务器,发送请求并接收处理结果。这只是一个基础的TCP通信...
在本主题中,我们将深入探讨Java中的TCP Socket编程,包括基本概念、工作原理以及如何通过`TestClient.java`和`TestServer.java`这两个示例文件进行实际操作。 TCP(Transmission Control Protocol)是一种面向连接...
在Java中实现网络通信,主要依赖于Socket编程模型,尤其是基于TCP/IP协议的Socket通信。 首先,Socket是一个抽象概念,用于网络通信,是网络通信的端点。在Java中,可以使用***.Socket类来创建一个客户端Socket,并...
本文将通过一个具体的Java Socket编程实例来深入探讨如何使用Java实现客户端与服务端之间的通信。 #### 二、基础知识概述 在开始具体实例之前,我们需要了解一些基本概念: - **Socket**:Socket是一种用于在网络...
2. **TCP Socket编程**:理解Socket接口,包括ServerSocket和Socket类,如何创建连接、读写数据,以及处理连接中断和错误。 3. **P2P网络模型**:了解对等网络的工作原理,如NAT穿透、端口映射等,以便在网络中找到...
Socket编程是Java网络编程的核心,它基于TCP/IP协议族,提供了在网络间双向通信的能力。Java中的`java.net.Socket`和`ServerSocket`类是实现Socket通信的关键。Socket连接由一个客户端Socket和一个服务器端...
在进行Java Socket编程之前,我们需要了解网络通信的基本概念。网络上的主机定位主要依赖于IP地址,它是一个唯一标识互联网上设备的数字地址。而TCP/IP协议栈中的TCP层和UDP层分别提供了两种不同的传输协议: 1. ...
在Java中,`java.net`包提供了实现这两种编程模型的API。 - **客户端Socket编程**: - 客户端首先需要通过服务器的IP地址和端口号创建Socket对象。 - 使用`connect()`方法建立与服务器的连接。 - 创建输入输出流...