2014-09-02 6 views
1

Я пытаюсь протестировать SCTP для развертывания сети. У меня нет сервера или клиента SCTP, и я надеялся использовать pysctp.Python sctp module - серверная сторона

Я уверен, что у меня есть код клиентской стороны.

def sctp_client(): 
    print("SCTP client") 
    sock = sctp.sctpsocket_tcp(socket.AF_INET) 
    #sock.connect(('10.10.10.70',int(20003))) 
    sock.connect(('10.10.10.41',int(21000))) 
    print("Sending message") 
    sock.sctp_send(msg='allowed') 
    sock.shutdown(0) 
    sock.close() 

Неужели кому-то повезло с использованием sctp-модуля python для серверной части? Благодарим вас в Advance!

+1

В чем проблема? – 2014-09-02 17:08:14

ответ

1

Я знаю, что эта тема немного устарела, но я решил, что я все равно отреагирую на это, чтобы помочь сообществу.

В двух словах:

  • вы используете pysctp с пакетом розетками для создания либо клиента или сервера;
  • вы можете создать соединение с сервером, как обычно, с обычным TCP-соединением.

Ниже приведен код, который поможет вам начать работу, это немного подробный, но он иллюстрирует полное соединение, отправку, получение и закрытие соединения.

Вы можете запустить его на своем компьютере Dev, а затем использовать инструмент как ncat (nmap «s Реализация netcat) для подключения, т.е .: ncat --sctp localhost 80.

Без дальнейших церемоний, вот код ... HTH:

# Here are the packages that we need for our SCTP server           
import socket                     
import sctp                      
from sctp import *                    
import threading                     

# Let's create a socket:                   
my_tcp_socket = sctpsocket_tcp(socket.AF_INET)             
my_tcp_port = 80                    

# Here are a couple of parameters for the server             
server_ip  = "0.0.0.0"                  
backlog_conns = 3                    

# Let's set up a connection:                  
my_tcp_socket.events.clear()                  
my_tcp_socket.bind((server_ip, my_tcp_port))              
my_tcp_socket.listen(backlog_conns)                

# Here's a method for handling a connection:              
def handle_client(client_socket):                
    client_socket.send("Howdy! What's your name?\n")            
    name = client_socket.recv(1024) # This might be a problem for someone with a reaaallly long name. 
    name = name.strip()                   

    print "His name was Robert Paulson. Er, scratch that. It was {0}.".format(name)    
    client_socket.send("Thanks for calling, {0}. Bye, now.".format(name))       
    client_socket.close()                   

# Now, let's handle an actual connection:              
while True:                      
    client, addr = my_tcp_socket.accept()              
    print "Call from {0}:{1}".format(addr[0], addr[1])           

    client_handler = threading.Thread(target = handle_client,         
             args = (client,))          
    client_handler.start() 
Смежные вопросы