pythonのSocket
生活随笔
收集整理的這篇文章主要介紹了
pythonのSocket
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
TCP/IP三次握手 第一次 A向B 發送 syn 請求 然后B給A返回 syn + ack A收到后,給B返回ack 握手成功。Socket 網絡編程實現通信 要通過IP+PortSocket是對所有上層協議的封裝,它只關注 發送數據 和 接收數據Socket使用方法:--發送端 偽代碼import socket# 聲明協議socket.TCP/IP# 建立連接
connect(a.ip,a.port)# 發送請求
socket.sent(hello)socket.recv()socket.close()-----------------------接收端 偽代碼import socket# 聲明協議socket.TCP/IP# 監聽端口 (監聽IP,監聽端口)listen(0.0.0.0,9990)# 等待鏈接
waiting()# 接收數據
recv()send()Socket Families (地址簇)socket.AF_UNIX 本機進程間通信socket.AF_INET IPV4socket.AF_INET6 IPV6Socket Typessocket.SOCK_STREAM # for tcpsocket.SOCK_DGRAM # for udpsocket.SOCK_raw # 原始套接字,普通的套接字無法處理ICMP、IGMP等網絡報文,而它可以。其次SOCK_RAW也可以處理特殊的socket.SOCK_RDM # 是一種可靠的UDP形式,即保證交付數據報但不保證順序。
客戶端代碼:
#!/usr/bin/env pythonimport socket# 申明協議類型 client = socket.socket() #申明socket類型,同事生成socket連接對象# 設置請求端口 client.connect(("localhost",6969))while True:msg = input(">>:").strip()#發送數據#client.send(b"Hello World")client.send(msg.encode("utf-8"))data = client.recv(1024)print("recv:",data.decode())client.close()服務端代碼:
#!/usr/bin/env pythonimport socket# 聲明協議 server = socket.socket()server.bind(("localhost",6969)) # 綁定要監聽的端口 server.listen() # 監聽print("等待通信中。。。") # 等待通信 # conn就是客戶端連過來,而在服務器端為其生成的一個連接實例 conn,addr = server.accept() # 它會返回兩個值 一個是連接對象,另一個是鏈接地址 print("conn,addr",conn,addr) print("消息來啦...") while True:# 接受信息data = conn.recv(1024)print("recv:",data.decode())conn.send(data)server.close()?
轉載于:https://www.cnblogs.com/pengpengzhang/p/9528202.html
總結
以上是生活随笔為你收集整理的pythonのSocket的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二逼平横树——线段树套平衡树
- 下一篇: python学习笔记day08 文件功能