`

Java TCP Socket编程模型

阅读更多

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();
	}
}

 

 

1
3
分享到:
评论

相关推荐

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

    《Java TCP/IP Socket编程》(原书第2版)是一本深入探讨Java中Socket编程的专著,旨在帮助读者理解并掌握如何在Java环境中利用TCP/IP协议进行网络通信。本书不仅详细介绍了Socket的工作原理,还提供了丰富的示例...

    Java TCP IP Socket编程 包含源码

    Java TCP/IP Socket编程是网络通信领域中的核心技术,广泛应用于服务器端和客户端之间的数据传输。本资源包含第二版书籍的相关源码,旨在帮助开发者深入理解并实践Socket编程。以下是关于Java TCP/IP Socket编程的...

    Java_TCP_IP_Socket编程(原书第2版)

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

    java TCP/IP socket 编程(原书第2版)pdf+源码

    Java TCP/IP Socket编程是Java网络通信的核心技术,广泛应用于服务器端和客户端之间的数据传输。这本书的第二版深入探讨了如何使用Java实现TCP/IP协议栈的socket接口,为开发者提供了全面的理论知识和实践指导。 ...

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

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

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

    总的来说,《Java + TCP/IP + Socket编程++ 原书第2版》可能会涵盖这些主题:TCP/IP协议基础,Java Socket API的使用,异常处理,多线程编程,以及网络编程的最佳实践。这本书将帮助开发者深入理解如何在Java环境中...

    Java TCP IP Socket编程(中文版).pdf

    在计算机网络领域,TCP/IP是一组用于互联网数据传输的协议,而Socket编程则是实现这些协议功能...通过上述知识点的介绍,可以了解Java TCP/IP Socket编程的基础和进阶内容,以及如何利用Java语言开发高性能的网络应用。

    java的Socket编程

    - NIO(非阻塞I/O)的`java.nio`包提供了更高效的Socket编程模型,适用于高并发场景。 总之,Java的Socket编程提供了强大的能力来构建网络应用程序。通过理解`Socket`和`ServerSocket`类,以及如何使用它们进行...

    TCPSocket编程客户端和服务端

    压缩包文件"TCPSocket"可能包含了示例代码,这些代码可以帮助初学者更好地理解TCP Socket编程的实践。通过阅读和运行这些代码,你可以学习如何在Python、C++、Java等语言中实现TCP Socket客户端和服务端。 在编程...

    Java TCPIP Socket编程.pdf

    Java TCPIP Socket编程是Java开发语言在后端服务中实现网络通信的重要技术,它基于Apache等开源库提供了丰富的API来创建高效、可靠的网络连接。本章将深入探讨Socket编程的基本概念和实现方法。 1. 计算机网络、...

    Java Socket网络编程.pdf

    Socket编程主要用于实现客户端和服务器之间的通信,基于客户机/服务器模型。在这个模型中,服务器端通常处于被动等待状态,监听特定端口的连接请求,而客户端则主动发起连接。 在Java中,Socket编程主要涉及两个...

    tcp.rar_java socket 服务端_java tcp socket_服务端 客户端

    总结一下,本示例中的Java TCP Socket编程展示了如何使用Java的Socket类创建一个简单的服务器,它接收客户端的请求并返回响应。客户端则通过Socket连接到服务器,发送请求并接收处理结果。这只是一个基础的TCP通信...

    Java Socket-03 Java TCP Socket

    在本主题中,我们将深入探讨Java中的TCP Socket编程,包括基本概念、工作原理以及如何通过`TestClient.java`和`TestServer.java`这两个示例文件进行实际操作。 TCP(Transmission Control Protocol)是一种面向连接...

    Java网络socket编程详解

    在Java中实现网络通信,主要依赖于Socket编程模型,尤其是基于TCP/IP协议的Socket通信。 首先,Socket是一个抽象概念,用于网络通信,是网络通信的端点。在Java中,可以使用***.Socket类来创建一个客户端Socket,并...

    Java socket编程实例.pdf

    本文将通过一个具体的Java Socket编程实例来深入探讨如何使用Java实现客户端与服务端之间的通信。 #### 二、基础知识概述 在开始具体实例之前,我们需要了解一些基本概念: - **Socket**:Socket是一种用于在网络...

    精选_基于JAVA和TCP SOCKET实现的P2P的局域网即时通信系统_源码打包

    2. **TCP Socket编程**:理解Socket接口,包括ServerSocket和Socket类,如何创建连接、读写数据,以及处理连接中断和错误。 3. **P2P网络模型**:了解对等网络的工作原理,如NAT穿透、端口映射等,以便在网络中找到...

    java3d socket编程

    Socket编程是Java网络编程的核心,它基于TCP/IP协议族,提供了在网络间双向通信的能力。Java中的`java.net.Socket`和`ServerSocket`类是实现Socket通信的关键。Socket连接由一个客户端Socket和一个服务器端...

    java_socket编程

    在进行Java Socket编程之前,我们需要了解网络通信的基本概念。网络上的主机定位主要依赖于IP地址,它是一个唯一标识互联网上设备的数字地址。而TCP/IP协议栈中的TCP层和UDP层分别提供了两种不同的传输协议: 1. ...

    Java网络socket编程详解.doc

    在Java中,`java.net`包提供了实现这两种编程模型的API。 - **客户端Socket编程**: - 客户端首先需要通过服务器的IP地址和端口号创建Socket对象。 - 使用`connect()`方法建立与服务器的连接。 - 创建输入输出流...

Global site tag (gtag.js) - Google Analytics