网络编程 udp聊天-传智播客版

import socket

def send_msg(udp_socket,dst_ip,dst_port):
    msg = input('>>>')+'\n'
    udp_socket.sendto(msg.encode('gbk'),(dst_ip,dst_port))

def recv_msg(udp_socket):
    msg,addr = udp_socket.recvfrom(1024)
    msg = '收到消息:'+msg.decode('gbk')
    print(msg)

def main():
    udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    udp_socket.bind(('',7788))
    dst_ip = input('请输入对方IP:')
    dst_port = int(input('请输入对方的端口:'))

    while True:
        send_msg(udp_socket,dst_ip,dst_port)
        recv_msg(udp_socket)

if __name__ == '__main__':
    main()

 tcp客户端

import socket

def main():
    tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    ip = input('请输入对方ip: ')
    port = input('请输入对方端口:')
    ip_port = (ip,int(port))

    tcp_socket.connect(ip_port)
    send_data = input('>>>').encode('gbk')
    tcp_socket.send(send_data)
    msg = tcp_socket.recv(1024).decode('gbk')
    print(msg)
    tcp_socket.close()

if __name__ == '__main__':
    main()

 tcp服务器

# tcp 服务器
import socket

def main():
    tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    tcp_socket.bind(('',7788))
    tcp_socket.listen(128)
    while True:
        print('等待一个新的客户端的到来...')
        client_socket,client_addr = tcp_socket.accept()
        print('一个新的客户端已经到来%s'%str(client_addr))
        while True:
            data = client_socket.recv(1024)
            print('收到消息:'+data.decode('gbk'))
            if data.decode('gbk')=='q':
                break
            msg = input('>>>')+"\n"
            client_socket.send(msg.encode('gbk'))
        client_socket.close()
        print('已经为这个客户服务完毕!')
    tcp_socket.close()

if __name__ == '__main__':
    main()

 

posted @ 2018-09-04 10:10  Woowo  阅读(126)  评论(0编辑  收藏  举报