网络通信 TCP UDP 冒泡排序

一、网络通信

'''
网络通信三要素:
    1.协议--说话方式
    2.端口号--对方拿什么接收数据
    3.IP地址--计算机在网络上的位置
'''
import socket
#获取主机名字
a=socket.gethostname()
print(a)
#通过主机名获取ip地址
print(socket.gethostbyname(a))

二、UDP

1.客户端

'''
client:客户端的
TCP协议传输
1.创建socket对象
2.建立连接(指定ip地址和端口号)
3.发送数据
'''
import socket

# 创建socket对象(指定ip地址方式(4,6),传输协议(TCP)
# AF_INET--4  SOCK_STEAM--tcp
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 建立连接 ip地址和端口号需要放在元祖中
s.connect(('192.168.58.62',8000))
# 发送数据 encode编码--str--byte
while True:
    data=input('客户端发给服务端的话')
    if data=='拜拜':
        break
    s.send(data.encode())
    data1=s.recv(1024)
    if data1.decode()=='拜拜':
        break
    print('服务器说',data1.decode())
s.close()

2.服务端

'''
server:服务端
'''
import socket

# 1.创建socket对象
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 2.绑定ip地址和端口号
s.bind(('192.168.58.62',8000))
# 3.监听 括号内的数字表示能接收几个客户端
s.listen(5)
# 4.同意连接 第一个值保存的是接入过来的客户端对象
#           第二个值保存的是地址的各种信息
client,add=s.accept()
# 接收数据
while True:
    data=client.recv(1024)
    print('客户端说',data.decode())
    data1=input('服务端给客户端发信息:')
    client.send(data1.encode())
    if data1=='拜拜' or data.decode()=='拜拜':
        break
s.close()
client.close()

三、UDP

1.客户端

import socket
#1.创建socket对象   SOCK_DGRAM
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#2.发送数据
while True:
    data=input('向服务器发送:')
    s.sendto(data.encode(),('192.168.58.62',9100))
2.服务端
import socket
#创建socket对象
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#2.绑定ip和端口
s.bind(('192.168.58.62',9100))
while True:
    # 3.收数据
    data = s.recv(1024)
    print('来着客户端',data.decode())

四、冒泡排序

list1=[90,2,1,5,1,100,100,3]
n=len(list1)-1
for i in range(n):
    for j in range(n-i):
        if list1[j]>list1[j+1]:
            list1[j],list1[j+1]=list1[j+1],list1[j]
print(list1)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值