广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python socket
  • 374
分享到

python socket

pythonsocket 2023-01-30 22:01:10 374人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

1、TCP链接 tcp是一种面向连接的、可靠的、基于字节流的传输层通信协议。所以在进行TCP链接时首先要开启服务器端口。 TCP服务端一般有几个步骤: ①  sk = Socket.socket(socket.AF_INET, socke

1、TCP链接

tcp是一种面向连接的、可靠的、基于字节流的传输层通信协议。所以在进行TCP链接时首先要开启服务器端口。

TCP服务端一般有几个步骤:

①  sk = Socket.socket(socket.AF_INET, socket.SOCK_STREAM)  创建套接字,第一个参数为套接字家族AF_INET:基于网络的套接字家族;第二个参数SOCK_STREAM:基于TCP协议的通信类型。创建时不带参数默认创建基于TCP协议的网络链接。

②  sk.bind(address)   绑定本机地址与端口号,address:元组,第一个元素为本机ip地址,第二个元素为端口号。

③  sk.listen()   开始监听TCP传入链接。

④  sock, addr = sk.accept()  接收成功链接的TCP并返回元组(sock, addr),元组第一个元素为新的套接字,负责与链接成功的客户端通信,元组第二个元素为地址,包含IP,与端口号,即 addr = (ip, port)

⑤  sock.recv(bufsize)   bufsize 指定最大接收字节数,返回一个bytes对象,即字节数组。没有数据接收时线程在此堵塞

⑥  sock.send(bytes)     将bytes发送到tcp客户端,返回发送的字节数,接收和发送可以并发执行

⑦  sock.close()   将与客户端通信的套接字关闭,关闭后不能与该客户端进行通信

⑧  sk.close()  将服务端监听套接字关闭,关闭后将不能接收新的链接

 TCP客户端一般有几个步骤:

①  sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  创建套接字

②  sk.connect(("127.0.0.1", 8899))   链接客户端

③  sk.send(bytes)  将bytes发送到服务器,返回发送的字节数

④  msg = sk.recv(bufsize)     接收数据,接收和发送可以并发执行

⑤  sk.close()  关闭套接字

 1 import socket
 2 
 3 
 4 def fn(conn):
 5     msg = conn.recv(1024).decode("utf-8")
 6     print("服务端收到>>>", msg)
 7     conn.send(msg.encode("utf-8"))
 8     print("服务端发送消息到客户端>>>", msg)
 9 
10 
11 if __name__ == "__main__":
12     sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
13     sk.bind(("127.0.0.1", 8899))
14     sk.listen()
15     while True:
16         conn, addr = sk.accept()
17         print("已连接服务器-->", addr)
18         fn(conn)
19     sk.close()
20 
21 
22 # 输出结果
23 已连接服务器--> ('127.0.0.1', 55921)
24 服务端收到>>> hhh
25 服务端发送消息到客户端>>> hhh
服务端
 1 import socket
 2 
 3 sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 4 sk.connect(("127.0.0.1", 8899))
 5 msg = input()
 6 sk.send(msg.encode("utf-8"))
 7 print("客户端发送的内容>>>", msg)
 8 msg = sk.recv(1024).decode("utf-8")
 9 print("客户端收到>>>", msg)
10 sk.close()
11 
12 
13 # 输出结果
14 hhh
15 客户端发送的内容>>> hhh
16 客户端收到>>> hhh
客户端
 1 import socket
 2 from threading import Thread
 3 
 4 
 5 def fn(conn):
 6     msg = conn.recv(1024).decode("utf-8")
 7     print("服务端收到>>>", msg)
 8     conn.send(msg.encode("utf-8"))
 9     print("服务端发送消息到客户端>>>", msg)
10 
11 
12 if __name__ == "__main__":
13     sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
14     sk.bind(("127.0.0.1", 8899))
15     sk.listen()
16     while True:
17         conn, addr = sk.accept()
18         print("已连接服务器-->", addr)
19         t = Thread(target=fn, args=(conn,))
20         t.start()
21     sk.close()
22 
23 
24 # 输出结果已连接服务器--> ('127.0.0.1', 55938)
25 已连接服务器--> ('127.0.0.1', 55939)
26 已连接服务器--> ('127.0.0.1', 55940)
27 服务端收到>>> 111
28 服务端发送消息到客户端>>> 111
29 服务端收到>>> 222
30 服务端发送消息到客户端>>> 222
31 服务端收到>>> 333
32 服务端发送消息到客户端>>> 333
服务端(多线程)

 

 2、UDP连接

udp服务端连接步骤:

①  sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  创建套接字

②  sk.bind(addr)  绑定指定端口和地址,服务端必须绑定,不然客户端无法知道服务端的端口号。客户端可不进行绑定程序运行时随机绑定一个端口号

③  recv_msg, recv_addr = sk.recvfrom(bufsize)   接收数据,没有数据接收时线程在此堵塞

④  sk.sendto(bytes, recv_addr)   发送数据,udp每一次发送数据都需要指定地址,发送与接收可以并发执行

⑤  sk.close()  关闭socket

udp客户端连接步骤:

①  sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  创建套接字

②  sk.sendto(bytes, recv_addr)   发送数据,返回发送的字节数,udp每一次发送数据都需要指定地址,发送与接收可以并发执行

③  recv_msg, recv_addr = sk.recvfrom(bufsize)   接收数据,没有数据接收时线程在此堵塞

④  sk.close()  关闭socket

 1 import socket
 2 
 3 print("-----server------")
 4 
 5 addr = ("127.0.0.1", 8899)
 6 sk = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
 7 sk.bind(addr)
 8 
 9 recv_msg, recv_addr = sk.recvfrom(1024)
10 print("服务端收到>>>", recv_msg.decode("utf-8"), recv_addr)
11 msg = "AAA"
12 sk.sendto(msg.encode("utf-8"), recv_addr)
13 print("服务端发送>>>", msg)
14 
15 sk.close()
16 
17 
18 # 输出结果
19 -----server------
20 服务端收到>>> BBB ('127.0.0.1', 55802)
21 服务端发送>>> AAA
UDP server
 1 import socket
 2 
 3 print("-----client------")
 4 
 5 server_addr = ("127.0.0.1", 8899)
 6 sk = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
 7 
 8 msg = "BBB"
 9 sk.sendto(msg.encode("utf-8"), server_addr)
10 print("客户端发送>>>", msg)
11 recv_msg, recv_addr = sk.recvfrom(1024)
12 
13 print("客户端发送>>>", recv_msg.decode("utf-8"), recv_addr)
14 
15 sk.close()
16 
17 
18 # 输出结果
19 -----client------
20 客户端发送>>> BBB
21 客户端发送>>> AAA ('127.0.0.1', 8899)
UDP client

 

--结束END--

本文标题: python socket

本文链接: https://www.lsjlt.com/news/179947.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python中socket与socket
    一、socket模块socket又叫套接字,是网络编程中的一个基本组件,是两个端点的程序之间的“信息通道”程序可分布在不同的计算机上(通过网络连接),通过socket套接字相互发送信息。python中的大多数的网络编程都 隐藏了socket...
    99+
    2023-01-31
    python socket
  • python socket
    1、TCP链接 TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。所以在进行TCP链接时首先要开启服务器端口。 TCP服务端一般有几个步骤: ①  sk = socket.socket(socket.AF_INET, socke...
    99+
    2023-01-30
    python socket
  • python之socket
    python之socket一、初识socket        socket 是网络连接端点,每个socket都被绑定到一个特定的IP地址和端口。IP地址是一个由4个数组成的序列,这4个数均是范围 0~255中的值(例如,220,176,36...
    99+
    2023-01-31
    python socket
  • python 3 socket
    server.py:import socketdef main():    host = '127.0.0.1'    port = 5000    server_socket = socket.socket()    server_soc...
    99+
    2023-01-31
    python socket
  • python socket window
    python socket 在本机跑成功后 在服务器端 将服务器端的代码放上去 却发现 跑不动关掉服务器的windows 防火墙 就没有问题了 可以跑但是 担心不安全;在服务器防火墙的高级安全设置 里面 新建 入站规则 选择 端口  然后 ...
    99+
    2023-01-31
    python socket window
  • Python thread socket
    从网上参考了一些代码,实现了一个Python实现的基于线程的socket server, 用来实现各种服务系统的原型。放在这里供以后参考。 #!/usr/bin/env python import threading&...
    99+
    2023-01-31
    Python thread socket
  • python socket学习
    一、简单实例:实现客户端向服务端发送的信息,服务器收到信息后加上当前时间再返回给客户端服务端实现:#!/usr/bin/python import socket, traceback, time host = '' port = 8000 ...
    99+
    2023-01-31
    python socket
  • python socket编程
    socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开...
    99+
    2023-01-31
    python socket
  • python--socket用法
    服务器端:import SocketServerimport osclass MyTCPHandler(SocketServer.BaseRequestHandler):    def handle(self):        print ...
    99+
    2023-01-31
    python socket
  • python简单socket
    clinet端#! /usr/bin/env python # -*-coding: utf-8-*- #这段代码是clinet端 import socket   #for sockets import sys  #for exit t...
    99+
    2023-01-31
    简单 python socket
  • python Socket模块
      UDP:   from socket import * import struct send_data = struct.pack('!H8sb5sb',1,'test.jpg',0,'octet',0) ========>利...
    99+
    2023-01-30
    模块 python Socket
  • python 实现socket
    socketserver   client服务器端  监听socket  IP+端口   网络通信本地  网络stream  tcp  dgram udp ftp服务器   传文件  传命令socket.server  多线程-执行impo...
    99+
    2023-01-31
    python socket
  • Python-socket编程
    一.socket编程Socket 是网络编程的一个抽象概念。通常我们用一个 Socket 表示“打开了一个网络链接”,而打开一个 Socket 需要知道目标计算机的 IP地址和端口号,再指定协议类型即可。二.Python的socket编程实...
    99+
    2023-01-31
    Python socket
  • Python-socket总结
    socket是什么什么是socket所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。说白了就是一种通信机制。列入你和移动客服咨询问题时,会有一个客服...
    99+
    2023-01-31
    Python socket
  • python的socket编程
    转自http://www.oschina.net/question/12_76126 参考http://www.cnblogs.com/waniu/archive/2012/08/08/2628390.html 一个简单的python so...
    99+
    2023-01-31
    python socket
  • python socket是什么
    这篇文章主要讲解了“python socket是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python socket是什么”吧!socket起源于Unix,而Unix/Linux基本...
    99+
    2023-06-27
  • Python -- socket 实现服
      现在需要做一个分布式课程设计(简单小游戏),三个人小组合作完成。   我需要设计一个登录注册服务器,接收来自网关服务器(消息中间件)的用户登录注册消息请求,然后生成访问数据库服务器的消息,发送给数据库服务器,接收并处理其返回信息,发送...
    99+
    2023-01-31
    Python socket
  • 46. Python Socket编程
    复习:消息队列为了防止消息丢失,或者是调用方,不需一直等待响应方的结果。# threadtest.pyimport codecs from queue import Queue from threading import Thread i...
    99+
    2023-01-31
    Python Socket
  • 47. Python socket编程
    1.获取百度返回信息import socket host = "www.baidu.com" port = 80 ip = socket.gethostname(host) #获取访问百度的时候解析出来的IP地址。(vip) print (...
    99+
    2023-01-31
    Python socket
  • Python tcp socket 传送
    【测试环境】os:Windows 10 x64 Python:3.6.3【server.py】#encoding: utf-8 #author: walker #date:  2017-12-01  #summary: 用socket创建t...
    99+
    2023-01-31
    Python tcp socket
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作