第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

python學(xué)習(xí)筆記之初識(shí)socket

標(biāo)簽:
Python

    我们都知道,在网络中通过IP地址来识别主机,在一台主机中通过端口号来识别不同的应用进程,那么把IP地址和端口号组合起来就可以唯一地识别网络中一台主机及其上的一个应用,这个组合就是套接字(socket),它实际上就是一个通信断点,即

                                    套接字=(主机IP地址,端口号)

    在使用python开发项目的时候可以使用很多第三方python工具创建网络客户端和服务端,这些工具的核心模块是socket模块。

直接上代码。

建立TCP客户端

import socket

#目标主机
target_add="www.baidu.com"
#端口号
target_port = 80

#建立一个socket对象
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

#连接客户端
client.connect((target_add,target_port))

#发送一些数据
client.send(("GET / HTTP/1.1\r\nHost:baidu.com\r\n\r\n").encode())

#接收一些数据
response = client.recv(1024)
print(response)

建立UDP客户端

import socket

#目标主机
target_add="127.0.0.1"
#端口号
target_port = 80

#建立一个socket对象
client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)  #这里由socket.SOCK_STREAM改为socket.SOCK_DGRAM

#发送一些数据
client.sendto(("ASDFGHJKL").encode(),(target_add,target_port))  #这里是sendto

#接收一些数据
data,addr = client.recvfrom(1024)  #这里是recvfrom
print(data)

    这两个客户端一看长得差不多,UDP客户端代码在TCP客户端代码上面稍微改一下就可以了。写UDP客户端时没有连接,这是因为UDP是一个无连接的传输协议。

    客户端写了,那么来写一个服务端。

TCP服务端

import socket
import threading

bind_ip = "127.0.0.1"
bind_port = 9999

server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

#启动监听
server.bind((bind_ip,bind_port))
#最大连接数设置为5
server.listen(5)

print(("[*] listeing on %s:%d" % (bind_ip,bind_port)).encode())

#客户处理线程
def handle_client(client_socket):
    request = client_socket.recv(1024)
    print(("[*] received: %s" % request).encode())

    client_socket.send(("ACK").encode())
    client_socket.close()
while True:
    #将接收到的客户端套接字对象保存到client中,将远程连接的细节保存到addr中
    client,addr = server.accept()
    print("[*] accepted connection from: %s:%d" % (addr[0],addr[1]))
    #创建线程对象
    client_handler = threading.Thread(target=handle_client,args=(client,))
    #启动线程
    client_handler.start()

    把上面的TCP客户端代码改下IP和端口,运行这两段代码,让它们实现通信,运行后服务器端会得到这样的结果

b'[*] listeing on 127.0.0.1:9999'
[*] accepted connection from: 127.0.0.1:3331
b"[*] received: b'asd'"


TCP客户端代码给成这样就行了:

import socket

#目标主机
target_add="127.0.0.1"
#端口号
target_port = 9999

#建立一个socket对象
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

#连接客户端
client.connect((target_add,target_port))

#发送一些数据
client.send(("asd").encode())

#接收一些数据
response = client.recv(1024)
print(response)



點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消