Python---socket中的tcp

在python中的网络编程,即socket编程

tcp:

import socket
print('服务器运行了。。。。')
myfuwu = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
myfuwu.bind(('127.0.0.1', 8000))
while 1:
    myfuwu.listen(5)     #监听的客户端的数量,可自己定义数量
    conn,addr = myfuwu.accept()  #侦听并接收此套接字的链接
    print(conn)
    print(addr)
    data = conn.recv(1024)   #接收的内容的大小
    print('客户端发来:',data.decode('utf-8'))
conn.close()
myfuwu.close

接收到的客户端的结果:

服务器运行了。。。。 <socket.socket fd=504, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0,

laddr=('127.0.0.1', 8000), raddr=('127.0.0.1', 60530)> #conn的内容 ('127.0.0.1', 60530) #addr,套接字的地址 客户端发来: 123

myfuwu = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
myfuwu.bind(('127.0.0.1', 8000))

如果想要不同电脑的通信,在这里把ip修改成电脑的IP地址即可,客户端也是修改成服务端的ip,

第一段的socket.AF_INET是固定格式,而第二个则是tcp的,要是udp则修改成

SOCK_DGRAM

客户端:

import socket

ipport = ('127.0.0.1', 8000)
back_log = 5
buffer_size = 1024
print('客户端开始运行。。。。')
while 1:
    tcp_clent = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    tcp_clent.connect(ipport)
    fasong = input("请输入你要发送的东西:")
    tcp_clent.send(fasong.encode('utf-8'))
    print('已经发送')
tcp_clent.close()

tcp是一对一的通信,如果客户端关闭,服务器也会报错关闭,如果想持续运行,可以添加try expect去捕捉异常,然后实现连续的接收客户端的连接。

import socket
print('服务器运行了。。。。')
while 1:
    try:
        myfuwu = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        myfuwu.bind(('127.0.0.1', 8000))
        while 1:
            myfuwu.listen(5)     #监听的客户端的数量,可自己定义数量
            conn,addr = myfuwu.accept()  #链接到客户端
            print(conn)
            print(addr)
            data = conn.recv(1024)   #接收的内容的大小
            print('客户端发来:',data.decode('utf-8'))
    except:
        print("服务器运行多一次")

conn.close()
myfuwu.close

本文分享自微信公众号 - 孤独的S(sjw_980305)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-03-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券