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

本文介绍了一个简单的网络通信小工具的实现方法,包括服务端和客户端的代码设计与运行流程。该工具通过创建套接字、绑定IP和端口、监听请求等步骤实现基本的数据收发功能。
一、运行流程
网络通信小工具包含两个部分,服务端和客户端
服务端运行流程
(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()
五、运行效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值