- サーバーを開きます
- クライアントを開きます
- クライアントは「connectrequest」をサーバーに送信します
- サーバーは「connectrequest」を受信します
- サーバーは「接続済み」をクライアントに送信します
- クライアントはサーバーから「接続」されています
- クライアントプリント「接続済み」!
- サーバーがクラッシュし、理由がわかりません(エラーも表示されません)。
サーバ:
from socket import *;
iSocket = socket( AF_INET, SOCK_DGRAM );
iSocket.bind( ( "", 4325 ) );
while True:
recv_data, addr = iSocket.recvfrom( 2048 );
if addr[ 0 ] == "127.0.0.1":
#stuff
elif recv_data == "on":
print "New connection:", addr[ 0 ];
elif recv_data == "connectrequest":
iSocket.sendto( "connected", addr );
クライアント:
import time;
import select;
from socket import *;
address = ( '192.168.0.101', 4325 );
iSocket = socket( AF_INET, SOCK_DGRAM );
iSocket.connect( address );
reconnect = 10;
last_reconnect = 0;
connected = False;
while connected == False:
if last_reconnect <= int( time.time( ) ) + reconnect:
print "Connecting...";
iSocket.sendto( "connectrequest", address );
data_available = select.select( [ iSocket ], [ ], [ ], 11 )
if data_available[ 0 ]:
recv_data, addr = iSocket.recvfrom( 2048 );
if recv_data == "connected":
connected = True;
print "Connected!";
iSocket.sendto( "on", address );
while True:
recv_data, addr = iSocket.recvfrom( 2048 );
print recv_data, addr;