網路程式設計udp

2021-08-20 19:22:52 字數 2881 閱讀 1183

網路程式設計udp-socket

1.socketserver:啟動程式,通過網路除錯助手向指定ip傳送資訊,在後台列印出發送人資訊和傳送內容

from socket import *

def main():

udpsocket = socket(af_inet, sock_dgram)

udpsocket.bind(("", 6789))

#收,列印

while true:

recvinfor = udpsocket.recvfrom(1024)

print("[%s]:%s"%(str(recvinfor[1]), recvinfor[0].decode("gb2312")))

if __name__ == "__main__":

main()

2.socketclite:多程序啟動,收發資訊互不影響,後台列印聊天內容

from socket import *

from threading import thread

def recv():

while true:

info = udpsocket.recvfrom(1024)

print('\>>>傳送人:%s , 內容:%s' % (str(info[1]), info[0].decode('gb2312')))

def send():

while true:

sendinfo = input('<<< ')

udpsocket.sendto(sendinfo.encode('gb2312'), (targethostip, targethostport))

def main():

global udpsocket

global targethostip

global targethostport

udpsocket = socket(af_inet, sock_dgram)

udpsocket.bind(('', 5678))

targethostip = input('對方的ip:')

targethostport = int(input('對方的port:'))

tr = thread(target=recv)

ts = thread(target=send)

tr.start()

ts.start()

tr.join()

ts.join()

if __name__ == '__main__':

main()

3.socketclite:多程序啟動,收發資訊互不影響,後台列印聊天內容並記錄到log日誌

import time

from socket import *

from threading import thread

import socket

def get_ip(ip='192.168.138.39', port=6500):

s_ip = ip

s_port = port

return s_ip, s_port

def send():

while 1:

sendnr = input('請輸入傳送內容:')

sk.sendto(sendnr.encode('gbk'), ip_port)

flag = true

now_time = time.strftime("%y-%m-%d %h:%m:%s", time.localtime())

with open('udp.log', 'a') as f:

f.write('\n' + now_time + ' 傳送內容:' + sendnr)

def recv():

while 1:

recvnr = sk.recvfrom(1024)

nr = recvnr[0].decode('gbk')

ip_port = recvnr[1]

now_time = time.strftime("%y-%m-%d %h:%m:%s", time.localtime())

info = '\n%s 接受內容: nr: %s, ip and port: %s'% (now_time, nr, ip_port)

print(info)

flag = false

with open('udp.log', 'a') as f:

f.write(info)

def main():

global sk

global ip_port

sk = socket.socket(socket.af_inet, socket.sock_dgram)

sk.bind(('', 5678))

sip = input('對方ip')

if len(sip) > 0:

sport = int(input('對方port'))

ip_port = get_ip(sip, sport)

with open('udp.log', 'a') as f:

f.write('\n' + str(ip_port))

else:

ip_port = get_ip()

with open('udp.log', 'a') as f:

f.write('\n' + str(ip_port))

ts = thread(target=send)

tr = thread(target=recv)

ts.start()

tr.start()

ts.join()

tr.join()

if __name__ == '__main__':

main()

UDP網路程式設計

基於udp 伺服器 程式步驟 1.建立乙個socket,用socket 函式 2.繫結ip位址 埠等資訊到socket上,用函式bind 3.迴圈接收資料,用recvfrom 4.關閉網路連線。基於udp 客戶端 程式步驟 1.建立乙個socket,用socket 函式 2.繫結ip位址 埠等資訊到...

UDP網路程式設計

基於udp 通訊模型 由上圖可以看出udp通訊的步驟如下 基於udp 伺服器 1 建立乙個socket,用函式socket 2 繫結ip位址 埠等資訊到socket上,用函式bind 3 迴圈接收資料,用函式recvfrom 4 關閉網路連線 基於udp 客戶端 1 建立乙個socket,用函式so...

網路程式設計 UDP

網路程式設計傳輸層選擇乙個資料控制模式 tcp或者udp,前面我們已經介紹了tcp程式設計,這篇我們簡單的來看看udp程式設計。udp是無連線的不可靠的資料報服務。udp協議在ip協議上增加了復用 分用和差錯檢測功能。udp的特點 a 是無連線的。相比於tcp協議,udp協議在傳送資料前不需要建立連...