python的TCP socket编程

一.创建TCP服务端流程

#tcpserver.py

'''创建TCP服务端
1. s = socket()    #创建一个套接字,参数:套接字类型AF_(INET/INET6/UNIX/TIPC/NETLINK等),链接类型(TCP/UDP)

2. s.bind((host,port))  #占用一个端口,绑定接收客户端链接的IP, 本机是127.0.0.1 localhost

3.clientsock = s.accept()   #accept返回两个元素,第一个客户端连接对象(客户端实例信息),第二个是客户端ip,port两个元素组成的一个元组

4. s.listen(5)      #监听传入的客户端链接


二.创建TCP客户端流程

#tcpclient.py

1.c = socket() #创建客户端实例

2.c.connect()   #客户端要连接的server,括号内是一个元组,填上服务端的ip和port

3.c.send()   #客户端发送消息

4. c.recv(1024)


HOST=''
PORT=5003
BUFSIZ=1024
ADDR=(HOST,PORT)

server = socket.socket(AF_INET,SOCK_STREAM)  #括号内不写,默认就是TCP
server.bind(ADDR)  #ADDR是一个元组哦,里面包含server主机IP和PORT,就是让客户访问的IP和PORT。


三.简单的案例,创建一个server,协议不填,默认就是TCP,server_socket.py

def main():
    server = socket.socket() #默认就是TCP
    server.bind(("localhost",6695))  #服务器的IP和对外链接的端口6695
    server.listen(1)  #监听一个用户连接

    print("等待client连接")

 #当有用户(client)发起连接时,就触发.这里生产一个二元组,元组内地一个元素是用户实例,第二个元素是用户IP和端口 

   conn,addr = server.accept()  

    print("用户已连接")
    print("user:%s"%conn) #打印用户实例
    print("IP:%s,PORT:%s"%(addr[0],addr[1])) #打印用户的IP和端口


    data = conn.recv(1024)  #收到的用户信息用  用户实例.recv() 的方式提取,1024是缓存大小,可以不写
    print("收到消息:",data.decode())  #因为python3是用bytes传输,所以这里需要解码

#server端也可以发送数据给客户端,需要注意的是消息需要编码,这里用的utf-8

    conn.send("MESSAGE HAS RECEIVED.".encode("utf-8")) 

#如果对话结束,就关闭server端
    server.close()

四、客户端实例 client_socket.py

def client():
    client = socket.socket()
    client.connect(("localhost",6695))
    client.send("川大智胜002253:19.27".encode('utf-8'))
    data = client.recv(1024)
    print(data.decode())





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值