python使用socket

来源:互联网 发布:nginx代理上网 编辑:程序博客网 时间:2024/06/07 01:07

import socket

tcp,udp基本步骤:

TCP(Transmission Control Protocol )

Client

1.创建socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # AF_INET: ipv4, SOCK_STREAM: TCP

2.连接(ip,端口)

s.connect(('blog.csdn.net', 80))

3.收发数据

发:

s.send(b'GET / HTTP/1.1\r\nHost: blog.csdn.net\r\nConnection: close\r\n\r\n')

收:

data = s.recv(1024)

4.关闭连接

s.close()

Server

1.创建socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # AF_INET: ipv4, SOCK_STREAM: TCP

2.绑定(ip,端口)

s.bind(('127.0.0.1', 8767))

3.listen

s.listen(2) #等待连接的最大数量

4.接受Client连接

sock, addr = s.accept() #addr是(ip, 端口)

5.收发数据

发:

sock.send(data)

收:

sock.recv(1024)#buffer大小为1024

6.关闭连接:

sock.close()

UDP(User Datagram Protocol)

Client

1.创建socket

s = socket(socket.AF_INET, socket.SOCK_DGRAM)

2.收发数据

发:

s.sendto(data, ('127.0.0.1', 9999))

收:

s.recv(1024)

3.关闭

s.close()

Server

1.创建socket

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

2.绑定(ip, 端口)

s.bind(('127.0.0.1', 9999))

3.收发数据

发:

s.sendto(data, addr)

收:

data, addr = s.recvfrom(1024)

总结

  • udp不需要:
    • listen
    • accept
  • 发数据:
    • tcp: send
    • udp: sendto
  • 收数据:
    • tcp: recv
    • udp: recvfrom
0 0
原创粉丝点击