计算机网络TCP套接字编程


TCP是一个面向连接的协议,意味着客户和服务器开始发送数据之前,它们先要握手和创建一个TCP连接。TCP连接的一端与客户套接字相联系,另一端与服务器套接字相联系。当创建该TCP连接时,我们将其与客户套接字地址(IP地址和端口号)和服务器套接字地址(IP地址和端口号)关联起来。使用创建的TCP连接,当一侧要向另一侧发送数据时,它只需经过其套接字将数据丢进TCP连接。这与UDP不同,UDP服务器在将分组丢进套接字之前必须为其附上一个目的地地址。

客户端:

import socket
import sys
IP = '119.45.115.128'  # 填写服务器端的IP地址
port = 1200  # 端口号必须一致
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
    s.connect((IP, port))
except Exception as e:
    print(e)
    print('服务器没有找到或未打开!')
    sys.exit()
while True:
    try:
        trigger = input("请输入待发送的数据:(exit-退出)")
        if trigger == 'exit':
            break
        s.sendall(trigger.encode())
        data = s.recv(1024)
        data = data.decode()
        print('从服务器接收到的结果为:', data)
    except Exception as e:
        print(e)

s.close()

服务端:

import socket

host = "192.168.0.104"  # 服务器端可以写"localhost",可以为空字符串"",也为本机IP地址
port = 1200  # 端口号
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
s.listen(1)
print('服务器已经启动')
conn, addr = s.accept()
print('', addr)
print('已经建立连接')
while True:
    try:
        data = conn.recv(1024)
        data = data.decode()
        if not data:
            break
        print('从客户端接收到信息为:', data)
        send = input('给客户端接的回复信息为:')
        conn.sendall(send.encode())
    except Exception as e:
        print(e)

conn.close()
s.close()

文章作者: 陈细利
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 陈细利 !
评论
 上一篇
计算机网络UDP套接字编程 计算机网络UDP套接字编程
1、UDP的服务器编程步骤:①.创建一个socket,用函数socket()②.绑定IP地址、端口等信息到socket上,用函数bind()③.循环接收数据,用函数recvfrom()④.关闭网络连接2、UDP的客户端编程步骤:①.创建一个
下一篇 
计算机网络RIP路由选择算法 计算机网络RIP路由选择算法
RIP原理 RPI协议是一种内部网关协议(IGP),是一种动态路由选择协议,用于自治系统(AS)内的路由信息的传递。RIP协议基于距离矢量算法(DistanceVectorAlgorithms),使用“跳数”来衡量到达目标地址的路由距离。这
  目录