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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值