网络通信小工具(python基于TCP的socket编程)

一、运行流程
网络通信小工具包含两个部分,服务端和客户端
服务端运行流程
(1)创建套接字
(2)绑定IP和端口号
(3)监听请求
(4)接收客户端的请求
(5)关闭套接字
客户端运行流程
(1)创建套接字
(2)发送连接请求
(3)关闭套接字
二、导入模块
import socket,threading
三、服务端代码
import socket,threading
def ip():
    name=socket.gethostname()
    ip=socket.gethostbyname(name)
    return ip
def send(co):#发送消息
    global flag
    try:
        while flag:
            data=str(input()).encode("utf-8")
            co.sendall(data)
    except:
        print("连接中断")
def receive(co):#接收消息
    global flag
    while flag:
        data=co.recv(1024).decode("utf-8")
        if data=="exit":
            co.close()
            print(data)
            flag=False
        else:
            print(data)
def connect():
    s=socket.socket()
    s.bind((ip,8888))
    s.listen(3)
    co,add=s.accept()
    print("连接成功")
    s1=threading.Thread(target=send,args=(co,))#创建发送和接收消息两个线程
    s2=threading.Thread(target=receive,args=(co,))
    s1.start()
    s2.start()
if __name__=="__main__":
    flag=True
    ip=ip()
    print ("本机ip:"+ip)
    connect()
四、客户端代码
import socket,threading
def send(s):#发送消息
    global flag
    while flag:
        data=str(input())
        s.sendall(data.encode("utf-8"))
        if data=="exit":
            s.close()
            flag=False
def receive(s):#接收消息
    global flag
    try:
        while flag:
            data=s.recv(1024).decode("utf-8")
            print(data)
    except:
        print("连接中断")
if __name__=="__main__":
    ip=str(input("输入主机ip:"))
    s=socket.socket()
    s.connect((ip,8888))
    print("连接成功")
    flag=True
    t1=threading.Thread(target=send,args=(s,))#创建发送和接收消息两个线程
    t2=threading.Thread(target=receive,args=(s,))
    t1.start()
    t2.start()
五、运行效果

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
服务端: 服务端程序启动之后弹出窗口,管理员输入IP、端口等信息之后点击启动按钮,服务器启动,服务端窗口自动关闭,之后跳转至服务端信息展示界面,包含用户上线提醒,用户发送信息记录展示。 客户端: 客户端程序启动之后,需要弹出登录界面,当用户成功输入昵称、密码、端口、IP等信息(考虑到用户权限问题,本程序在后台默认有固定IP、端口,)用户只需输入昵称、密码(密码用于后期连接数据库时用来匹配数据库存储的用户信息)。当用户成功输入用户名。昵称、密码等信息客户端登录成功跳转至用户进行端对端的聊天界面。聊天界面大致分为聊天记录展示界面,在线好友信息界面以及用户发送信息处。用户在发送消息处输入想要发送的文本消息,选择在线好友中的好友昵称点击选择好友即可选中您要发给的好友昵称,然后点击发送按钮,即可将消息发送给所选择的好友,同时将信息展示在自己的聊天界面中的聊天记录处 2.2. 功能要求 §2.2.1服务端功能要求: 当管理员输入服务器IP、以及端口等信息之后点击启动按钮之后,服务端正常启动之后,需要保持一直开机状态满足所有用户不论在何时登录之后都能进行与好友之间的聊天交流等,同时服务端还要满足监控用户登录信息,不同用户登录客户端之后,服务器后台能够看到某某客户上线了等提示信息。用于服务端查看好友在线状态同时作为服务器,还要能够监控用户的聊天记录,用于监控用户不能发送一些不利言论,从而将其用户及时作封号处理。阻止其传播一些不健康的言论。 §2.2.2客户端要求: 用户在登录界面输入昵称、密码等信息之后成功登录之后,进行窗口之间的跳转,由登录窗口跳转至进行用户之间的聊天窗口,之前的登录窗口也要随之消失。在聊天窗口之中用户需要根据好友在线信息情况选择自己想要与其进行聊天的对象。用户点击在线好友的昵称点击选择好友即可向该好友发送信息,发送成功之后同时要将其发送的信息以及时间信息展示在自己的窗口之中,同时也要在指定好友的窗口之中有所显示以及时间信息

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值