最简单的tcp客户端和服务端 还有udp

简介: 最简单的tcp客户端和服务端 还有udp

tcp服务器:

# -*- coding: utf-8 -*-
"""
Created on Tue May 26 21:39:55 2020

@author: Administrator
"""
import socket
#创建套接字
tcp_server_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#绑定IP和port
address=('',8080)
#listen使套接字变为可被动连接
tcp_server_socket.bind(address)
tcp_server_socket.listen(128)

#accept等待客户端链接
while True:
    
    client_addr,a=tcp_server_socket.accept()
    print(client_addr)
    
    #recv/send接收或发送数据
    while True:
        
        recv_data=client_addr.recv(1024)
        print(recv_data)
#        发过来数据会解堵塞
#        客户端关闭链接也会解堵塞此时为空
        if recv_data:
            
            client_addr.send("服务器已收到".encode("utf-8"))
        else:
            
            client_addr.close()
            break
tcp_server_socket.close()

View Code

tcp客户端:

# -*- coding: utf-8 -*-
"""
Created on Tue May 26 21:13:26 2020

@author: Administrator
"""
import socket
#创建链接字
tcp_client_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#目的信息
server_ip="192.168.236.129"
server_port=8080
#链接服务器
tcp_client_socket.connect((server_ip,server_port))
#提示用户输入数据
send_data="hello"
#发送
tcp_client_socket.send(send_data.encode("utf-8"))
#接受对方发过来的数据,最大1024
recvdata=tcp_client_socket.recv(1024)
print(recvdata)
#关闭连接
tcp_client_socket.close()

View Code

udp

## -*- coding: utf-8 -*-
#"""
#Created on Tue May 26 10:53:22 2020
#
#@author: Administrator
#"""
#
##导入模块
#import socket
##创建socket
#skt  = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#skt.bind(('',8080))
#while True:
#    
#    #创建发送消息和发送目标
#    msg = input()
#    addr = ('192.168.236.128',8080)
#    k=bytes(msg, encoding="utf8")
#    skt.sendto(k,addr)
#    
##    接收数据:
#    data = skt.recvfrom(1024)
##    print(data)
#    s2 = str(data[0], encoding="UTF-8")
#    print("             "+s2)
#   
#skt.close()

#!/usr/bin/python3

import threading
import time
import socket


class Server_Thread(threading.Thread):
    def __init__(self,threadID,name,skt):
        threading.Thread.__init__(self)
        self.threadID=threadID
        self.name=name
        self.skt=skt
    def run(self):
        while True:
            
            data = self.skt.recvfrom(1024)
        #    print(data)
            s2 = str(data[0], encoding="UTF-8")
            print("             "+self.name+":"+s2)
class Client_Thread(threading.Thread):
    def __init__(self,threadID,name,skt):
        threading.Thread.__init__(self)
        self.threadID=threadID
        self.name=name
        self.skt=skt
    def run(self):
        while True:
            
         #创建发送消息和发送目标
            msg = input()
            addr = ('192.168.236.128',8080)
            k=bytes(msg, encoding="utf8")
            self.skt.sendto(k,addr)
def main():
    
    skt  = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    skt.bind(('',8081))
    # 创建新线程
    thread1 = Client_Thread(1, "windows",skt)
    thread2 = Server_Thread(2, "linux",skt)
    
    # 开启新线程
    thread1.start()
    thread2.start()
    thread1.join()
    thread2.join()
    skt.close()

if __name__=="__main__":
    main()
相关文章
|
1月前
|
监控 网络协议 网络性能优化
不再困惑!一文搞懂TCP与UDP的所有区别
本文介绍网络基础中TCP与UDP的区别及其应用场景。TCP是面向连接、可靠传输的协议,适用于HTTP、FTP等需要保证数据完整性的场景;UDP是无连接、不可靠但速度快的协议,适合DNS、RIP等对实时性要求高的应用。文章通过对比两者在连接方式、可靠性、速度、流量控制和数据包大小等方面的差异,帮助读者理解其各自特点与适用场景。
|
1月前
|
存储 网络协议 安全
用于 syslog 收集的协议:TCP、UDP、RELP
系统日志是从Linux/Unix设备及网络设备生成的日志,可通过syslog服务器集中管理。日志传输支持UDP、TCP和RELP协议。UDP无连接且不可靠,不推荐使用;TCP可靠,常用于rsyslog和syslog-ng;RELP提供可靠传输和反向确认。集中管理日志有助于故障排除和安全审计,EventLog Analyzer等工具可自动收集、解析和分析日志。
149 2
|
2月前
|
网络协议 网络性能优化 数据处理
深入解析:TCP与UDP的核心技术差异
在网络通信的世界里,TCP(传输控制协议)和UDP(用户数据报协议)是两种核心的传输层协议,它们在确保数据传输的可靠性、效率和实时性方面扮演着不同的角色。本文将深入探讨这两种协议的技术差异,并探讨它们在不同应用场景下的适用性。
99 4
|
2月前
|
监控 网络协议 网络性能优化
网络通信的核心选择:TCP与UDP协议深度解析
在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种基础且截然不同的传输层协议。它们各自的特点和适用场景对于网络工程师和开发者来说至关重要。本文将深入探讨TCP和UDP的核心区别,并分析它们在实际应用中的选择依据。
91 3
|
2月前
|
网络协议 算法 网络性能优化
|
2月前
|
网络协议 SEO
TCP连接管理与UDP协议IP协议与ethernet协议
TCP、UDP、IP和Ethernet协议是网络通信的基石,各自负责不同的功能和层次。TCP通过三次握手和四次挥手实现可靠的连接管理,适用于需要数据完整性的场景;UDP提供不可靠的传输服务,适用于低延迟要求的实时通信;IP协议负责数据包的寻址和路由,是网络层的重要协议;Ethernet协议定义了局域网的数据帧传输方式,广泛应用于局域网设备之间的通信。理解这些协议的工作原理和应用场景,有助于设计和维护高效可靠的网络系统。
62 4
|
3月前
|
网络协议 前端开发 物联网
TCP和UDP区别?
本文首发于微信公众号“前端徐徐”,详细介绍了TCP和UDP两种传输层协议的核心概念、连接性和握手过程、数据传输和可靠性、延迟和效率、应用场景及头部开销。TCP面向连接、可靠、有序,适用于网页浏览、文件传输等;UDP无连接、低延迟、高效,适用于实时音视频传输、在线游戏等。
94 1
TCP和UDP区别?
|
2月前
|
缓存 负载均衡 网络协议
面试:TCP、UDP如何解决丢包问题
TCP、UDP如何解决丢包问题。TCP:基于数据块传输/数据分片、对失序数据包重新排序以及去重、流量控制(滑动窗口)、拥塞控制、自主重传ARQ;UDP:程序执行后马上开始监听、控制报文大小、每个分割块的长度小于MTU
|
3月前
|
Web App开发 缓存 网络协议
不为人知的网络编程(十八):UDP比TCP高效?还真不一定!
熟悉网络编程的(尤其搞实时音视频聊天技术的)同学们都有个约定俗成的主观论调,一提起UDP和TCP,马上想到的是UDP没有TCP可靠,但UDP肯定比TCP高效。说到UDP比TCP高效,理由是什么呢?事实真是这样吗?跟着本文咱们一探究竟!
112 10
|
3月前
|
网络协议 网络性能优化 C#
C# 一分钟浅谈:UDP 与 TCP 协议区别
【10月更文挑战第8天】在网络编程中,传输层协议的选择对应用程序的性能和可靠性至关重要。本文介绍了 TCP 和 UDP 两种常用协议的基础概念、区别及应用场景,并通过 C# 代码示例详细说明了如何处理常见的问题和易错点。TCP 适用于需要可靠传输和顺序保证的场景,而 UDP 适用于对延迟敏感且可以容忍一定数据丢失的实时应用。
72 1