udp客户端
import socket
import sys
def mian ( argv) :
up_socket = socket. socket( socket. AF_INET, socket. SOCK_DGRAM)
while 1 :
send_data= input ( "input your speak:" )
if send_data== "break" :
break
up_socket. sendto( send_data. encode( "utf-8" ) , ( argv, 8080 ) )
up_socket. close( )
if __name__== "__main__" :
mian( sys. argv[ 1 ] )
tcp服务端
import socket
def main ( ) :
tcp_socket= socket. socket( socket. AF_INET, socket. SOCK_STREAM)
tcp_socket. bind( ( "" , 8080 ) )
tcp_socket. listen( 128 )
while True :
print ( "wait a newclinet come to..." )
new_client, ipaddr = tcp_socket. accept( )
print ( "a new clinet come here!...." )
print ( str ( ipaddr) )
while 1 :
recv_data = new_client. recv( 1024 )
if recv_data. decode( "utf-8" ) == "break" :
break ;
else :
print ( "data from clinet:%s" % recv_data. decode( "utf-8" ) )
new_client. send( "-------ok---------" . encode( "utf-8" ) )
new_client. close( )
print ( "had to close" )
tcp_socket. close( )
if __name__ == "__main__" :
main( )
UDP服务端
import socket
import sys
def main ( ) :
a = socket. socket( socket. AF_INET, socket. SOCK_DGRAM)
localaddr= ( "" , 8080 )
a. bind( localaddr)
while 1 :
data = a. recvfrom( 1024 )
data1 = data[ 0 ]
data2 = data[ 1 ]
if data1 == "break" :
break
else :
print ( "%s:%s" % ( str ( data2) , data1. decode( "utf-8" ) ) )
a. close( )
if __name__ == "__main__" :
main( )
TCP客户端
import socket
def main ( ) :
up_socket = socket. socket( socket. AF_INET, socket. SOCK_STREAM)
ipaddr = input ( "请输入你要传的ip:" )
ports = int ( input ( "请输入端口:" ) )
new_client= ( ipaddr, ports)
if up_socket. connect( new_client) :
print ( "connect is ok!" )
send_data = input ( "请输入你要传的数据:" )
up_socket. send( send_data. encode( "utf-8" ) ) ;
if up_socket. recv( 1024 ) :
data = up_socket. recv
print ( "data from service:%s" % str ( data) )
else :
up_socket. close( )
if __name__ == "__main__" :
main( )
非阻塞实现
import socekt
import time
def main ( ) :
tcp_server = socket. socket( socket. AF_INET, socket. SOCK_STREAM)
tcp_server. bind( ( "" , 7891 ) )
tcp_server. listen( 128 )
clinet_list = list ( )
while True :
time. sleep( 0.5 )
try :
tcp_server. setblocking( False )
clinet_socket, clinet_ip = tcp_server. accept( )
except :
print ( "没有新的客户端连接" )
else :
print ( "有一个客户端连接是%s" % ( str ( clinet_ip) ) )
clinet_socket. setblocling( False )
clinet_list. append( clinet_socket)
for i in clinet_list:
try :
recv_datas = i. recv( 1024 )
except :
pass
else :
if recv_datas:
print ( "recv is ok!" )
else :
i. close( )
clinet_list. remove( i)
print ( "客户端关闭" )
if __name__== "__main__" :
main( )