网络TCP

Posted lab-zj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络TCP相关的知识,希望对你有一定的参考价值。

优点:

  • 可靠,稳定
  • 适合传输大量数据

缺点:

  • 传输速度慢
  • 占用系统资源高

TCP和UDP区别

  1. TCP面向连接; UDP是不面向连接;
  2. TCP提供可靠的数据传输,也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP不保证可靠的数据传输,容易出现丢包情况;
  3. TCP需要连接传输速度慢,UDP不需要连接传输速度快
  4. TCP不支持发广播;UDP支持发广播
  5. TCP对系统资源要求较多,UDP对系统资源要求较少。
  6. TCP适合发送大量数据,UDP适合发送少量数据
  7. TCP有流量控制,UDP没有流量控制
 

TCP客户端代码

import socket

# 创建tcp socket
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 目的信息
server_ip = input("请输入服务器ip:")
server_port = int(input("请输入服务器port:"))

# 链接服务器
tcp_client_socket.connect((server_ip, server_port))

# 提示用户输入数据
send_data = input("请输入要发送的数据:")

tcp_client_socket.send(send_data.encode("gbk"))

# 接收对方发送过来的数据,最大接收1024个字节
recvData = tcp_client_socket.recv(1024)
print(‘接收到的数据为:‘, recvData.decode(‘gbk‘))

# 关闭套接字
tcp_client_socket.close()

tcp服务器

  1. socket创建一个套接字
  2. bind绑定ip和port
  3. listen使套接字变为可以被动链接
  4. accept等待客户端的链接
  5. recv/send接收发送数据
  • tcp服务端绑定端口号,程序退出后端口号不会立即释放,解决办法可以设置socket选项,让程序退出端口号立即释放,也称为端口号复用

以上是关于网络TCP的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

常见网络攻击手法总结

网络LinuxLinux网络编程-TCP,UDP套接字编程及代码示范

网络LinuxLinux网络编程-TCP,UDP套接字编程及代码示范

TCP网络协议的三次握手及代码释义