TCP/IP网络编程之socket通信

作者:佚名 上传时间:2023-03-14 运行软件:Python 软件版本:Python 3.7 版权申诉

简介

TCP/IP socket编程是计算机网络编程中最基础的一种,也是网络编程必修的一门课程。本文将介绍socket通信的基础知识,示例代码以及代码释义。

socket通信

定义

socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,socket使用了门面模式,它把复杂的TCP/IP协议族隐藏在socket接口后面,对用户来说只需要调用socket接口,socket帮我们打包数据,然后通过TCP/IP协议族进行通信。

分类

根据传输层协议的不同,socket可以分为两种:TCP socket和UDP socket。TCP socket是面向连接的socket,提供可靠的数据传输服务;UDP socket是无连接的socket,不提供可靠的数据传输服务。

示例代码

TCP socket

以下是一个简单的TCP socket通信的代码示例:

import socket

# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 获取本地主机名
host = socket.gethostname()

# 设置端口号
port = 9999

# 绑定端口号
server_socket.bind((host, port))

# 设置最大连接数,超过后排队
server_socket.listen(5)

while True:
    # 建立客户端连接
    client_socket, addr = server_socket.accept()

    print("连接地址:%s" % str(addr))

    msg = "欢迎访问菜鸟教程!" + "\r\n"
    client_socket.send(msg.encode('utf-8'))

    # 关闭连接
    client_socket.close()

UDP socket

以下是一个简单的UDP socket通信的代码示例:

import socket

# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 获取本地主机名
host = socket.gethostname()

# 设置端口号
port = 9999

# 绑定端口号
server_socket.bind((host, port))

while True:
    # 接收客户端数据
    data, addr = server_socket.recvfrom(1024)

    print("接收到的数据:%s" % data.decode('utf-8'))

    # 发送数据到客户端
    server_socket.sendto("欢迎访问菜鸟教程!".encode('utf-8'), addr)

创建socket对象

socket.socket(socket.AF_INET, socket.SOCK_STREAM)

AF_INET表示IPv4地址族,SOCK_STREAM表示TCP连接。

socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

SOCK_DGRAM表示UDP连接。

绑定端口号

server_socket.bind((host, port))

绑定端口号,host是指主机名,port是指端口号。

监听连接

server_socket.listen(5)

设置最大连接数,超过后排队。

建立连接

client_socket, addr = server_socket.accept()

建立客户端连接,addr是连接客户端的地址。

发送数据

client_socket.send(msg.encode('utf-8'))

发送数据到客户端。

server_socket.sendto("欢迎访问菜鸟教程!".encode('utf-8'), addr)

发送数据到客户端,addr是客户端的地址。

接收数据

data, addr = server_socket.recvfrom(1024)

接收客户端发送的数据,1024是接收的缓冲区大小。

本文介绍了TCP/IP socket编程中的socket通信基础知识,示例代码以及代码释义。socket通信是网络编程中必不可少的一部分,掌握socket通信对于网络编程的学习和应用都非常有帮助。

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
TCP/IP网络程之socket通信
简介TCP/IP socket编程是计算机网络编程中最基础的一种,也是网络编程必修的一门课程。本文将介绍socket通信的基础知识,示例代码以及代码释义。socket通信定义socket是应用
Python 3.7
Python
2023-03-14 09:07
TCP/IP网络编程实现Socket通信
本文将介绍如何使用TCP/IP协议进行Socket编程,实现网络通信。我们将使用Java程序设计,提供示例代码并对代码进行释义。最后,我们会对本文进行总结。TCP/IP协议TCP/IP协议是一组用
JDK 14
Java
2023-04-01 12:49
java Socket Tcp Ip通信
java Socket Tcp/Ip通信示例demo,主要用于物联网
ZIP
0B
2019-04-14 09:02
Delphi编写TCP IP网络Socket通信程序
本例子就是Delphi中如何利用Socket编写通信程序。 计算机网络是由一系列网络通信协议组成的,其中的核心协议是传输层的TCP/IP和UDP协议。TCP是面向连接的,通信双方保持一条通路,好比目前
rar
0B
2018-12-09 09:18
TCP IP SOCKET网络编程
TCP/IP SOCKET 网络编程 多模式I/O网络开发
PPT
1.34MB
2020-09-19 14:42
C语言TCP IP网络socket通信源码
C语言TCP/IP网络socket通信源码,非常有用。
RAR
0B
2019-05-17 02:09
socket tcp ip多线程通信
c#开发的资源提供了多线程通信机制。适合出学者使用。客户端发布信息。服务器端可接收。而且使用了一定的命令。代码非常全
RAR
0B
2019-07-06 17:15
使用Python socket实现TCP/IP网络通信
本示例代码使用Python socket模块实现TCP/IP网络通信,实现了服务器接收客户端消息,返回相应消息的功能。import socket# 创建TCP socket对象server_s
Python 3.7.3
PyCharm
2023-04-25 10:06
Socket网络通信TCP
基于TCP协议的Socket网络通信代码,通过VS2010编译通过,运行成功
ZIP
0B
2019-03-09 22:33
基于QT的TCP_socket通信
基于QT的TCP_socket通信编基于QT的TCP_socket通信编基于QT的TCP_socket通信编基于QT的TCP_socket通信编基于QT的TCP_socket通信编基于QT的TCP_s
DOC
0B
2019-06-01 14:20