TCP全双工通信(2)客户端篇

本文接自上篇文档,展示客户端篇的代码,前一篇服务器的默认端口是8888,IP地址可自行获取本地IP

# -*- coding: utf-8 -*-
# @Time : 2021/6/19 16:56
# @Author : 飞鸟凌
# @File : tcp_socket_09客户端通信器.py

import threading
import socket

my_name = "客户端"
goal_name = "服务器"
encoding = "utf-8"
sever_ip = ""
sever_port = None
loop = 0


def send_my(tcp_socket):
    while True:
        send_data = input(my_name + ":|")
        print()
        if send_data == "exit":
            break
        tcp_socket.send(send_data.encode(encoding))


def rev_my(new_socket):
    global loop
    while True:
        try:
            rev_data = new_socket.recv(1024)
        except ConnectionError as e:
            print("\n服务器已断开连接")
            loop = 1
            break

        print("\n")
        print("%s:|%s".rjust(37, " ") % (rev_data.decode(encoding), goal_name))
        print(my_name + ":|", end="")


def menu():
    global sever_ip, sever_port
    sever_ip = input("请输入服务器的ip地址:")
    sever_port = int(input("请输入服务器的端口:"))
    print("udp_socket客户端通信器".center(50, " "))
    print("=" * 50)


def main():
    # 1.菜单提示
    menu()
    # 2.创建套接字
    tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 3.链接服务器
    tcp_socket.connect((sever_ip, sever_port))
    # while True:
    # 6.创建子线程发送数据
    send_t = threading.Thread(target=send_my, args=(tcp_socket,))
    # 7.创建子线程接收数据
    rev_t = threading.Thread(target=rev_my, args=(tcp_socket,))
    # 8.线程开始
    rev_t.start()
    send_t.start()
    # 9.关闭局部套接字
    global loop
    while loop == 0:
        pass
    loop = 0
    tcp_socket.close()


if __name__ == '__main__':
    main()

### 回答1: .NET TCP全双工是指通过.NET框架中的TCP协议实现的双向通信方式。在这种通信模式下,服务器和客户端可以同时进行数据的传输和接收,在通信的过程中可以实现数据的交互和同步,达到一种高效和准确的通信方式。 在.NET框架中,客户端和服务器实现全双工通信的程序代码非常简单。首先需要创建一个TCPClient对象和TcpListener对象,然后通过TCPClient对象连接到服务器的网络端口,进而实现客户端和服务器的连接。在连接成功后,客户端和服务器之间可以通过TCP协议发送和接收数据,实现双向通信。同时客户端和服务器也可以通过流(stream)来进行数据传输,流可以实现数据的读取和写入操作,从而完成数据的传输。 .NET TCP全双工通信方式具有很强的实用性和可靠性,可以适用于各种数据传输场景。例如,可以用于在同步和异步模式下进行触发器操作、Windows服务程序的控制和监控、在线游戏、多媒体资源的传输等方面。通过使用.NET TCP全双工通信方式,可以实现高效、稳定、可靠的数据传输,从而提高了数据通信的效率和准确性。 ### 回答2: .NET TCP全双工是一种网络协议,它允许网络上的各个节点之间进行双向通信。这种通信方式可以同时进行数据的发送和接收,使得网络应用程序可以更加高效地进行数据交互。在.NET框架中,TCP全双工通过Socket类来实现,通过建立连接、发送数据、接收数据等操作来实现数据通信。 对于服务器端来说,TCP全双工可以使其同时处理多个客户端的请求,从而提高服务器的并发处理能力。而对于客户端来说,TCP全双工可以使其以实时的方式接收到服务器端发送的数据,并且可以及时地向服务器端发送反馈信息。 .NET TCP全双工协议在实际应用中被广泛使用,例如在线游戏、即时通讯等领域。在进行网络应用程序开发时,通过使用.NET TCP全双工,可以有效地提高应用程序的及时性和可靠性,从而提高用户的使用体验。 ### 回答3: .NET TCP全双工是指在基于.NET平台的TCP网络编程中,同时支持客户端和服务器端进行双向通信的一种通信方式。在TCP协议中,客户端和服务器端建立的连接是双向的,即可以同时进行收发数据,但是通常情况下是单向的,即一方发送数据,另一方接收数据,并不能同时进行收发数据。 而全双工通信则可以实现客户端和服务器端同时进行收发数据,即可以随时发送和接收数据,而不需要等待对方先发送数据。这样可以大大提高了通信的效率,缩短了通信的延迟时间。 .NET TCP全双工通信需要使用异步编程模型,通过在客户端和服务器端分别创建异步通信的Socket对象,实现双向数据的发送和接收。客户端和服务器端可以通过互相发送“心跳包”来保持TCP连接的有效性,确保数据的可靠传输。 总的来说,.NET TCP全双工通信是高效且可靠的TCP网络通信方式,可以满足对实时交互性和数据传输可靠性要求较高的应用场景,如在线游戏、即时通讯等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值