網路程式設計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協議在傳送資料前不需要建立連...