python socket 模擬tcp通訊


對於tcp server 端的創建而言, 分為如下步驟: 

 
1,創建socket對象(socket):其中倆個參數分別為
    Address Family(如AF_INET為ipv4), AF_INET6為ipv6,AF_UNIX為unix域協議簇). 
     socket類型(如SOCK_STREAM為tcp,SOCK_DGRAM為udp)
2,綁定服務器地址(bind) : 參數為服務器地址二元組 也就是套接字 
3,監聽(listen): 參數為允許的連接數 
4,等待請求(accpet): 建立一個連接,等待客戶端
5,接收數據(recv,recvfrom ,recvfrom_into ,recv_into)  
6,發送數據(send ,senfall ,sendto) 
7,關閉連接(close) 
 
 
代碼: 
 
 
#! /usr/bin/python
# -*- coding: utf-8 -*-
import socket
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_address = ("127.0.0.1",12345)
print "Staring up on %s:%s" %  server_address
sock.bind(server_address)
sock.listen(5)
 
while True:
    print "waiting .........."
    connetion,client_address = sock.accept()
    try:
        print  "Connection from ",client_address
        data = connetion.recv(1024)
        print "Receive '%s'" % data
    finally:
        connetion.close()

 

 

 

對於tcp client端而言 , 分為以下幾個步驟:

1 創建socket對象( socket) : 同server端
2,連接服務器(connect) : 參數為服務器地址二元組
3,發送和接收數據: 同server端
4,關閉連接 : 同server端
 
 
代碼: 
#! /usr/bin/python
# -*- coding: utf-8 -*-
import socket
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
def check_tcp_status(ip,port):
 
    sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    server_address = (ip,port)
    print "connecting to %s:%s" % server_address,port
    sock.connect(server_address)
 
    message = raw_input("pleas input: ")
    print "Sending '%s'" % message
    sock.sendall(message)
    print "Closing socket"
    sock.close()
 
if __name__ == "__main__":
    print check_tcp_status("127.0.0.1",12345)
 

 

 






免責聲明!

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



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