python socket 基本使用


socket通常也叫做“套接字”,用於連接server client,是一個通信鏈的句柄,應用程序通常通過套接字向網絡發出請求或應答網絡請求。

就像python 處理file一樣:

file是針對某個文件 打開-->讀寫-->關閉

socket是針對服務器 客戶端進行 打開-->讀寫-->關閉

server部分:

import socket,sys
server_address=('127.0.0.1', 8000)
BUF_SIZE=1024
try:
   server_sk=socket.socket(socket.AF_INET, socket.SOCK_STREAM)     #創建新的socket對象
except socket.error, msg:
   print "socket create fail, error code:" + str(msg[0]) + 'error message:' + msg[1]
print 'socket create successfully'
try:
   server_sk.bind(server_address)                                   #綁定server地址,address取決於地址族,AF_INET以元組表示
except socket.error, msg:
   print "socket bind address error:" + str(msg[0]) + 'error mssage:' + msg[1]
print 'socket bind address successfully'

server_sk.listen(5)
print "listening..."

while True:
   client_sk, client_addr = server_sk.accept()
   print "connected by:", client_addr
   while True:
      data=client_sk.recv(BUF_SIZE)
      print data
      client_sk.sendall(data)

server_sk.close()
參數一:地址簇
socket.AF_INET IPv4(默認)
socket.AF_INET6 IPv6
參數二:類型
socket.SOCK_STREAM  流式socket , for TCP (默認)
socket.SOCK_DGRAM   數據報式socket , for UDP
Client部分:
import socket,sys
server_address=('127.0.0.1', 8000)
BUF_SIZE=1024

try:
   client_sk=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error, msg:
   print "socket create fail, error code:" + str(msg[0]) + 'error message:' + msg[1]

client_sk.connect(server_address)
while True:
   data= raw_input('please input your sending message->')
   if not data:
      print "input data cannot be empty, please input again.."
      continue
   client_sk.sendall(data)
   recv_data = client_sk.recv(BUF_SIZE)
   print recv_data

client_sk.close()

server 輸出:

socket create successfully
socket bind address successfully
listening...
connected by: ('127.0.0.1', 63388)
aa

client 輸出:

please input your sending message->aa
aa
please input your sending message->


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM