import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
/**
*
* 服务器端程序:
*
* 1. 监听一端口,等待客户接入; 2. 一旦有客户接入,就构造一个Socket会话对象; 3. 将这个会话交给线程处理,然后主程序继续监听。
*
* @author OKJohn
* @version 1.0
*/
public class Server extends ServerSocket {
public Server(int serverPort) throws IOException {
// 用指定的端口构造一个ServerSocket
super(serverPort);
try {
while (true) {
// 监听一端口,等待客户接入
Socket socket = accept();
// 将会话交给线程处理
new ServerThread(socket);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
close(); // 关闭监听端口
}
}
// inner-class ServerThread
class ServerThread extends Thread {
private Socket socket;
private BufferedReader in;
private PrintWriter out;
// Ready to conversation
public ServerThread(Socket s) throws IOException {
this.socket = s;
// 构造该会话中的输入输出流
in = new BufferedReader(new InputStreamReader(socket
.getInputStream(), "GB2312"));
out = new PrintWriter(socket.getOutputStream(), true);
start();
}
// Execute conversation
public void run() {
try {
// Communicate with client until "bye " received.
while (true) {
// 通过输入流接收客户端信息
String line = in.readLine();
if (line == null || "".equals(line.trim())) { // 是否终止会话
break;
}
System.out.println("Received message: " + line);
// 通过输出流向客户端发送信息
out.println(line);
out.flush();
}
out.close();
in.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// main method
public static void main(String[] args) throws IOException {
new Server(2088);
}
}
在浏览器输入:http://localhost:2088/hello.do
浏览器显示:
GET /hello.do HTTP/1.1
Host: localhost:2088
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
分享到:
相关推荐
在Java中,我们可以使用`java.net.ServerSocket`类来创建一个服务器端点,监听特定的TCP端口,等待客户端的连接。 二、创建ServerSocket 要创建一个TCP服务器,首先需要实例化一个`ServerSocket`对象,并指定监听的...
在编程实现TCP端口监听时,常见的编程语言如Java、Python、C++等都有相应的API支持。例如,在Python中,可以使用socket库来实现: ```python import socket # 创建socket对象 server_socket = socket.socket...
在Java编程语言中,扫描TCP端口是网络编程的一个重要组成部分。这通常涉及到网络通信,尤其是在服务器端,需要检查特定的端口是否开放并监听连接请求。以下是对这个主题的详细解释。 首先,TCP(传输控制协议)是一...
在进行网络编程时,经常需要检查特定的TCP端口是否被占用,以确保服务的正常运行或者避免冲突。本篇文章将详细解释如何检测TCP端口是否被占用,并结合VS2010环境下的C++代码实践进行阐述。 首先,了解TCP端口的基本...
本篇文章将详细讨论TCP和UDP这两种主要的传输协议,以及如何使用端口监听工具进行测试。 TCP(Transmission Control Protocol)是互联网协议栈中的一个面向连接的协议,它提供了可靠的数据传输服务。TCP通过建立...
TCP服务器主要负责监听指定端口,接收客户端连接请求,然后进行数据交互。 二、Java NIO与TCP服务器 Java NIO(New Input/Output)库提供了非阻塞I/O操作,使得TCP服务器可以处理多个并发连接。本框架可能采用了...
在TCP Socket编程中,服务器端通常首先启动,监听特定的端口以等待客户端的连接请求。在Java中,我们可以使用`java.net.ServerSocket`类来创建服务器端的Socket。以下是一个简单的`TCP server.java`示例: ```java ...
在Java编程中,TCP(传输控制协议)常用于构建稳定、可靠的数据通信。TCP长连接是一种保持客户端与服务器端长时间连接的技术,以便于进行高效的数据交互。心跳机制是维持长连接的关键,它用来检测网络连接是否中断,...
在Java中,我们可以使用`java.net.ServerSocket`类创建服务器端,它会监听指定的端口,等待客户端的连接。`accept()`方法用于接收客户端的连接请求。客户端则使用`java.net.Socket`类建立到服务器的连接,通常通过`...
`ServerSocket`在指定端口监听连接请求,当客户端发起连接时,会创建一个`Socket`对象与之对应。客户端则通过`Socket`类建立到服务器的连接。在连接建立后,双方可以通过`Socket`的`getInputStream`和`...
在TCP通信中,服务器会监听特定端口,等待客户端的连接请求。当客户端发起连接后,服务器通过accept方法创建一个新的Socket实例来处理该连接。这个过程称为三次握手,确保双方都准备好进行通信。一旦连接建立,数据...
本文将深入探讨如何使用Java来实现一个基于TCP协议的服务器,我们将围绕`TCPSocketServer.java`源代码文件展开讨论,并结合`Java.jpg`可能包含的TCP服务器编程基础概念进行阐述。 首先,TCP协议是Internet协议族中...
Java TCP编程是Java网络编程中的核心部分,它基于TCP(传输控制协议)提供了一种可靠的、面向连接的数据传输方式。TCP是一种面向字节流的协议,确保数据在发送方和接收方之间完整无误地传输,即使在网络环境不稳定的...
Java TCP服务器框架是一种用于构建高性能、可扩展网络应用的核心组件,尤其适合开发需要稳定通信的分布式系统。这个框架是基于Java编程语言实现的,利用了Java的Socket编程接口来搭建服务器与客户端之间的TCP连接。...
1. **服务器端**:这是TCP转发的起点,它监听特定的端口,等待客户端的连接请求。当客户端连接后,服务器端会接收客户端发送的数据,并将其转发到目标地址。 2. **客户端**:客户端连接到服务器端,并通过这个连接...
Java TCP聊天程序是一种基于TCP协议实现的网络通信应用,它允许在局域网内的设备之间进行实时的文字聊天、在线状态追踪以及用户管理等操作。在这个项目中,开发者可能使用了Java语言的核心网络编程API,包括Socket和...
Java TCP文件传输是一种基于网络的通信方式,利用TCP(传输控制协议)的可靠连接特性来实现文件在不同设备之间的安全传输。在这个过程中,通常需要创建一个服务器端来监听客户端的连接请求,然后客户端通过建立连接...
《Java TCP/IP Socket编程》(原书第2版)是一本深入探讨Java中Socket编程的专著,旨在帮助读者理解并掌握如何在Java环境中利用TCP/IP协议进行网络通信。本书不仅详细介绍了Socket的工作原理,还提供了丰富的示例...
在这个“javatcp.rar”压缩包中,我们很可能是找到了一些示例代码,用于演示如何在Java中实现TCP通信并结合多线程技术。 首先,让我们了解Java中实现TCP通信的基础。在Java中,`java.net.Socket`类代表一个TCP连接...