网络通信

1、创建socket

import socket
socket.socket(addressFamily,Type)

addressFamily:可以选择AF_INET(用于internet进程间通信)或者AF_UNIX(用于同一台机器进程间通信),实际使用AF_INET

Type:套接字类型, 1、SOCK_STREAM:用于TCP协议   2、SOCK_DGRAM:用于UDP协议

2、套接字使用流程

  1、创建套接字

  2、使用套接字首发数据

  3、关闭套接字

3、udp客户端

import socket
#  1、创建套接字
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#  2、接收方地址
address = ('127.0.0.1',8080)
#  3、输入发送数据
send_date = input('请输入要发送的数据:')
#  4、发送数据,
udp_socket.sendto(send_date.encode('utf-8'),address)
#  5、关闭套接字
udp_socket.close()
udp_客户端

 

4、udp服务端

import socket
#  创建桃姐字
udp_server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#  绑定端口
local_addr = ('',8080)
udp_server.bind(local_addr)
#  接收消息
recv_date = udp_server.recvfrom(1024)
#  打印接受消息
print(recv_date)
print(recv_date[0].decode('utf-8'))

#  关闭套接字
udp_server.close(
udp_服务端

5、tcp客户端

from socket import *
#  创建套接字
tcp_socket = socket(AF_INET,SOCK_STREAM)
#  目的信息
ip = input('请输入服务器ip地址:')
port = int(input('请输入服务端口:'))
#  链接服务器
tcp_socket.connect((ip,port))
#  输入要发送的数据\
while True:
    send_date = input("请输入要发送的数据:")
    tcp_socket.send(send_date.encode('utf-8'))
#  接收对方发过来的数据
    recv_date = tcp_socket.recv(1024)
#  打印接收到的数据
    print(recv_date.decode('utf-8'))
#  关闭套接字
tcp_socket.close()
tcp_客户端

6、tcp服务端

from socket import *
#  创建套接字
socket_server = socket(AF_INET,SOCK_STREAM)
#  bind绑定ip和 port
address = ('',7788)
socket_server.bind(address)
#  listen使套接字变为被动连接
socket_server.listen(128)
#  accept 等待客户端的链接
client_socket, clientaddr = socket_server.accept()

#  收 发数据
while True:
    recv_date = client_socket.recv(1024)
    print(recv_date.decode('utf-8'))
    sentdate = input("请输入回复:")
    client_socket.send(sentdate.encode('utf-8'))
#  关闭这个客户端的套接字
client_socket.close()
tcp_服务端

 

posted @ 2019-05-08 15:43  chengzhengdong  阅读(114)  评论(0编辑  收藏  举报