网络编程:TCP通信的基本流程

使用TCP进行通信需要客户端先与服务端进行连接才可以通信。 TCP编程面向的是IO流,它使用IO流进行通信。

服务端基本流程:

(1)使用ServerSocket指定端口创建服务器。

(2)使用Socket监听是否有客户端连接,ServerSocket的accept()方法是阻塞式的。

(3)使用IO流接收数据。

(4)使用IO流发送数据,并刷新输出流。

(5)关闭IO流,先打开的后关闭。

客户端基本流程:

(1)使用Socket创建客户端并指定服务端的地址和接口。

(2)使用IO流发送数据,并刷新输出流。

(3)使用IO流接收数据。

(4)关闭IO流,先打开的后关闭。

package Net.TCP;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * TCP编程练习:熟悉流程,实现收发消息
 * 
 * @author zhaoy
 *
 */
public class Test01_server {
	public static void main(String[] args) throws IOException {
		System.out.println("======服务端=======");
		// 指定端口 创建服务端
		ServerSocket server = new ServerSocket(9999);
		// 阻塞式的等待连接
		Socket client = server.accept();
		System.out.println("客户端建立连接");
		// 接收消息
		DataInputStream dis = new DataInputStream(client.getInputStream());
		String msg = dis.readUTF();
		// 返回消息
		DataOutputStream dos = new DataOutputStream(client.getOutputStream());
		dos.writeUTF(msg);
		// 刷新输出流
		dos.flush();
		// 关闭流
		dos.close();
		dis.close();
	}
}
package Net.TCP;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.Socket;

/**
 * TCP编程练习:熟悉流程,实现收发消息
 * 
 * @author zhaoy
 *
 */
public class Test01_client {
	public static void main(String[] args) throws Exception {
		System.out.println("=======客户端========");
		// 建立连接,创建客户端指定服务的地址和端口
		Socket client = new Socket("localhost", 9999);
		// 发送数据
		BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
		String msg = console.readLine();
		DataOutputStream dos = new DataOutputStream(client.getOutputStream());
		dos.writeUTF(msg);
		// 刷新输出流
		dos.flush();
		// 接收消息
		DataInputStream dis = new DataInputStream(client.getInputStream());
		msg = dis.readUTF();
		System.out.println(msg);
		// 关闭流
		dis.close();
		dos.close();
	}
}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于TCP通信的简单网络聊天室是一种通过TCP协议实现的实时聊天程序。该程序的实现涉及客户端和服务器端两个部分。 客户端和服务器端之间的通信依赖于TCP套接字编程。客户端首先与服务器建立连接,然后可以发送消息和接收其他客户端发送的消息。服务器端负责接收来自客户端的消息,并将这些消息广播给其他连接到服务器的客户端。 在实现这个聊天室时,需要考虑以下几个关键方面: 1. 建立连接 客户端通过指定服务器的IP地址和端口号来建立与服务器的连接。服务器端需要监听来自客户端的连接请求,并为每个客户端创建一个新的线程进行处理。 2. 消息传递 一旦建立连接,客户端和服务器可以通过套接字进行双向通信。客户端可以发送消息给服务器端,服务器端收到消息后会将其广播给所有连接到服务器的客户端。 3. 多线程处理 为了支持多个客户端同时与服务器进行通信,服务器端需要使用多线程处理来自不同客户端的消息。每当有新的客户端连接到服务器时,服务器就会为该客户端创建一个新的线程来处理它的消息。 4. 用户界面 虽然这个聊天室是基于网络的,但是对于用户来说,他们需要一个用户友好的界面来发送和接收消息。因此,在实现这个聊天室时,可以考虑设计一个简单的图形用户界面或者使用命令行界面。 总而言之,基于TCP通信的简单网络聊天室通过建立连接、消息传递、多线程处理和用户界面等关键步骤,实现了客户端之间的实时通信。这个聊天室可以作为教学实验或者业余项目,帮助学习者理解网络编程TCP通信基本原理和应用。 ### 回答2: 基于TCP通信的简单网络聊天室是一个允许多个用户通过网络进行实时聊天的应用程序。在实践网络编程实训时,我们可以按照以下步骤来创建一个简单的网络聊天室: 1. 创建服务器:首先,我们需要创建一个服务器端程序,它监听指定的端口,并接受客户端的连接请求。服务器使用套接字(socket)来进行通信。一旦有客户端连接,服务器接受该连接,并为每个客户端创建一个新的线程来处理通信。 2. 创建客户端:同时,我们还需要创建一个客户端程序,该程序用于连接服务器并进行通信。当客户端启动时,它会尝试连接到服务器的IP地址和端口。 3. 实现聊天功能:一旦客户端连接到服务器,它就可以发送和接收消息。服务器负责将接收到的消息广播给所有连接的客户端,以实现聊天功能。客户端可以向服务器发送消息,并显示其他客户端发送的消息。 4. 异常处理:在编程过程中,我们应该注意处理可能出现的异常,例如连接断开、网络故障等。在客户端和服务器端都应该实现适当的异常处理机制,以确保程序的稳定性。 5. 用户界面设计:除了实现通信功能,我们还可以考虑设计更友好的用户界面。客户端可以提供登录功能,允许用户输入用户名和密码。对于服务器端,我们可以设计管理功能,如踢出用户、禁言等。 通过完成以上步骤,我们可以实现一个基于TCP通信的简单网络聊天室。通过这个实训项目,我们可以学习网络编程基本知识和技能,并了解网络应用的实现原理。同时,我们也可以通过此项目进一步加深对Python编程语言的了解和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值