模拟qq聊天
import socket
from threading import Thread
def read_msg(socket, msg):
print(msg)
while True:
receive_msg, IP = socket.recvfrom(1024)
print("from %s:%s" % (IP, receive_msg.decode("gbk")))
def send_msg(socket, ip):
while True:
msg = input(">>")
socket.sendto(msg.encode("gbk"), ip)
def main():
service_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
address = ('192.168.133.70', 2000)
service_socket.bind(address)
receive_msg, receive_IP = service_socket.recvfrom(1024)
read_t1 = Thread(target=read_msg, args=(service_socket, receive_msg))
read_t1.start()
send_t2 = Thread(target=send_msg, args=(service_socket, receive_IP))
send_t2.start()
if __name__ == "__main__":
main()
广播
import socket
def main():
broadcast_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
broadcast_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
address = ("192.168.133.110", 2425)
msg = input(">>")
broadcast = ("1:99:zl:hrz:32:%s"% msg).encode("gbk")
broadcast_socket.sendto(broadcast, address)
msg, ip = broadcast_socket.recvfrom(1024)
print("from %s: %s" % (ip, msg.decode("gbk")))
if __name__ == "__main__":
main()