(socket)(TCP UDP)

两种架构:C/S  client and serv     B/S  browser and server
OSI七层模型
TCP UDP
下面程序是基于UDP的socket通信


#********************本文共两个程序,第一个模拟服务器server,第二个模拟客户端client********************************
import socket

server = socket.socket(type=socket.SOCK_DGRAM)  # 创建一个服务器socket对象
# server.bind(('127.0.0.1',9000)) # 监听本机9000端口,里面元组,所以看着是两个括号
server.bind(('10.10.42.80',7777)) # 监听本机9000端口,里面元组,所以看着是两个括号

#接收从客户端发来的消息
# msg,addr = server.recvfrom(1024) # 接收到的信息,IP地址

#向客户端发送消息
# server.sendto(b'I am server',addr) # b把汉字字符转换为2进制

while True:
    # 接收从客户端发来的消息
    msg,addr = server.recvfrom(1024)  # 接收到的信息,IP地址
    msg=msg.decode('utf-8') # 把客户发来的utf-8转换成uniconde
    print('客户地址:',addr)
    print('发的消息是:',msg)
    content = input('我给客户的回复是:')
    content = content.encode('utf-8')
    # 向客户端发送消息
    server.sendto(content,addr)  # b把汉字字符转换为2进制

#关闭套接字
server.close()
#********************************************************

import socket
serv = socket.socket(type=socket.SOCK_DGRAM)
serv.bind(('127.0.0.1',9000))

msg,addr = serv.recvfrom(1024)
msg = msg.decode('utf-8')
print('服务器收到',msg,'从',addr)
content = input('fwq要发送的信息是:').encode('utf-8')
serv.sendto(content,addr)

serv.close()
#********************************************************
'''
import socket
serv = socket.socket(type=socket.SOCK_DGRAM)
serv.bind(('127.0.0.1',9000))

msg,addr = serv.recvfrom(1024)
msg = msg.decode('utf-8')
print('客户端发来的是:',msg)

content = input('要发给客户的是:').encode('utf-8')
serv.sendto(content,addr)

serv.close()

#************************下面是客户端client*****************************************************

import socket,time
# SOCK_STREAM 是基于TCP的,有保障的(即能保证数据正确传送到对方)面向连接的SOCKET,多用于资料传送。
# SOCK_DGRAM 是基于UDP的,无保障的面向消息的socket,多用于在网络上发广播信息。
client = socket.socket(type=socket.SOCK_DGRAM) #创建一个服务器socket对象

# ip_port = ('127.0.0.1',9000) #服务器地址和端口
# ip_port = ('10.10.42.35',7777) #
content = input('我要给server发送的是:')
content = content.encode('utf-8')
# content=content.encode('utf-8')

while True:
    for i in range(2,254):
        for j in range(65536):
            ip = '10.10.42.'+str(i)
            ip_port = (ip,j)
            client.sendto(content,ip_port)
            print(i,j)


    # c=content+str(i)
    # c=c.encode('utf-8')
    # client.sendto(c,ip_port) #向服务器发送一条信息
    # time.sleep(0.5)

msg,addr = client.recvfrom(1024) #接收从服务器返回的一条信息
msg=msg.decode('utf-8')
print(msg,addr)
#******************************************************

import socket
cln = socket.socket(type=socket.SOCK_DGRAM)

content = input('用户要发送的是:').encode('utf-8')
ip_port = ('127.0.0.1',9000)
cln.sendto(content,ip_port)

msg,addr = cln.recvfrom(1024)
msg = msg.decode('utf-8')
print('fwq发过来的是',msg,addr)
#******************************************************
"""
import socket
cln = socket.socket(type=socket.SOCK_DGRAM)
ip_port = ('127.0.0.1',9000)
content = input('要发给服务器的是:').encode('utf-8')
cln.sendto(content,ip_port)

msg,addr = cln.recvfrom(1024)
msg = msg.decode('utf-8')
print('客户收到的是:',msg)

猜你喜欢

转载自blog.csdn.net/weixin_44675370/article/details/88545182