python多人聊天室 跨主机_python+tcp实现多人聊天室

tcp介绍

引用百度百科的介绍

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 [1] 定义。

TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。

通常会将udp和tcp进行对比分析,之后再找时间用实例进行深入对比分析。现在先来看这张图,明白一下两者在实现上的差距。udp实现多人聊天室可以看这里。

因为tcp是基于连接的,所以必须先启动服务端,在通过客户端去连接服务端。

客户端

先来看客户端的代码,实现相对比较简单,利用两个线程或者是os.fork()创建子进程的方式,完成连接到服务器之后的发送/接收功能。

还是一样的指令操作模式

from socket import *

import os,sys,signal

import time

class tcpClient():

server_addr = ('127.0.0.1',9090)

def __init__(self,name):

self.sockfd = socket() # 创建套接字

self.user_name = name

def msg_recv(self):

while True:

data = self.sockfd.recv(1024)

if data.decode('gb2312') == 'exit':

print('客户端退出')

break

print(data.decode('gb2312'))

def msg_send(self): ##发送消息

while True:

data_info = input()

self.sockfd.send(data_info.encode('gb2312'))

if data_info == 'exit':

break

你可能感兴趣的:(python多人聊天室 跨主机_python+tcp实现多人聊天室)