IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> ”21天好习惯“第一期-19 -> 正文阅读

[系统运维]”21天好习惯“第一期-19

socket 编程实验

实验内容

1.编写一个基于UDP协议的客户机与服务器程序,实现相互通讯。

服务器端:

from socket import *

host = '10.100.118.128'
port = 60000
addr = (host, port)

s = socket(AF_INET, SOCK_DGRAM)
s.bind(addr)

print('等待客户端连接...')
while True:
    data, addr = s.recvfrom(1024)
    print(str(addr) + ':' + str(data.decode('utf-8')))
    msg = '收到。'
    s.sendto(msg.encode('utf-8'), addr)

s.close()

客户端

from socket import *

host = '10.100.118.128'
port = 60000
addr = (host, port)

s = socket(AF_INET, SOCK_DGRAM)
while True:
    msg = input('向服务端发送:')
    s.sendto(msg.encode('utf-8'), addr)
    data, addr = s.recvfrom(1024)
    print(addr, ':', data.decode('utf-8'))
s.close

2.编写一个基于TCP协议的客户机与服务器程序,实现相互通讯。
服务器端:

import socket

# 开启ip和port
ip_port = ('10.100.118.128', 60001)
# 生成一个句柄
sk = socket.socket()
# 绑定ip和port
sk.bind(ip_port)
# 最多连接数
sk.listen(5)

# 开启死循环
print('server waiting...')
# 等待链接 阻塞
conn, addr = sk.accept()
# 获取客户端请求
print('链接成成功, 客户端为:', addr)

while True:
    client_data = conn.recv(1024)
    print('[收到客户端数据]:' + client_data.decode('utf-8'))

    if client_data == 'q':
        break

    # 发送数据
    msg = input('回复客户端:>>>')
    conn.sendall(msg.encode('utf-8'))

# Close
conn.close()
sk.close()

客户端:

import socket
# 服务端ip和port
ip_port = ('192.168.2.102', 60000)
# 生成一个句柄
sk = socket.socket()
# 请求链接服务器
sk.connect(ip_port)

while True:
    msg = input('向服务端发送:')
    # 发送数据
    sk.sendall((msg.encode('utf-8')))

    if msg == 'q':
        break

    # 接收数据
    server_reply = sk.recv(1024)

    if not server_reply:
        break

    print('[收到服务端数据]:' + server_reply.decode('utf-8'))

# Close
sk.close()
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-11 13:06:47  更:2021-11-11 13:08:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:40:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码