1.打开一个socket第一步需要知道目标计算机的ip地址和端口号,再指定协议类型; 2.套接字常被理解为进程间通信的方式,可以在同一个机器的不同进程也可以在不同机器之间的进程; 3.创建socket使用socket模块的socket方法: import socket s = socket.socket() 4.socket方法传入的参数:socket_family:协议,socket_type:协议类型(tcp udp。。),protocol:类型
TCP编程:
客户端:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time
import socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#建立连接
s.connect(("127.0.0.1",6666))
count = 0
while count <= 10:
#发送数据
msg = "'hello services!'"
s.send(msg.encode('utf-8'))
#接收数据
d = s.recv(1024)
da = d.decode()
print(da)
count += 1
#关闭连接
s.close()
服务器端:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import socket
import time
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#建立连接
s.bind(('127.0.0.1',6666))
s.listen()
print('listening..')
while True:
sock,addr = s.accept()
print(addr)
while True:
try:
data = sock.recv(1024) # 接收数据
print('recive:', data.decode()) # 打印接收到的数据
time.sleep(3)
sock.send("hello client!".encode('utf-8')) # 然后再发送数据
except:
print('关闭了正在占线的链接!')
break
sock.close()
s.close()
UDP编程:
客户端:
import socket
udpsocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
udpsocket.sendto("hello service!".encode(),("127.0.0.1",7788))
d = udpsocket.recvfrom(1024)
print(d)
udpsocket.close()
服务器端:
import socket
udpsocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
udpsocket.bind(("127.0.0.1",7788))
r = udpsocket.recvfrom(1024)
print(r)
c,d = r
udpsocket.sendto("hello client!".encode(),d)
print(c.decode())
udpsocket.close()