2013-09-20 7 views
-1

Может кто угодно поделится простым кодом для VB 2008, чтобы открыть порт. Я хотел бы, чтобы это было как utorrent, как вы можете изменить порт прослушивания для передачи данных. Большое спасибо, если вы можете мне помочь!Открыть порт с vb?

ответ

1

uTorrent - это ничего, кроме «простого кода». Это сложное приложение с большим количеством сетевой логики, выходящей за рамки простого открытия порта и нажатия битов в него и из него.

Но отправной точкой для обработки сообщений низкого уровня будет пространство имен System.Net.Sockets, которое содержит класс Socket. Он позволяет управлять низким уровнем, например, открывать порт, прослушивать соединения и обрабатывать их самостоятельно.

Here's учебник о программировании сокетов в VB.NET, но вы, вероятно, найдете больше информации, если будете искать «C# Socket tutorial». Синтаксис C# немного отличается от VB.NET, но он использует те же классы и те же концепции, поэтому вы, вероятно, сможете применить уроки к своему собственному коду.

+0

спасибо, но мне понравилось это в VB. –

1

As Avner указал, uTorrent не простой код. Если вы хотите что-то сделать на этом уровне, вам нужно много сделать.

Вот простая программа сокетов, которую вы можете использовать.

Imports System.Net 
Imports System.Net.Sockets 

Module Module1 

    Sub Main() 
     Console.WriteLine("Enter the host name or IP Address to connect to:") 
     Dim hostName = Console.ReadLine().Trim() 
     If hostName.Length = 0 Then 
      ' use the local computer if there is no host provided 
      hostName = Dns.GetHostName() 
     End If 

     Dim ipAddress As IPAddress = Nothing 
     ' parse and select the first IPv4 address 
     For Each address In Dns.GetHostEntry(hostName).AddressList 
      If (address.AddressFamily = AddressFamily.InterNetwork) Then 
       ipAddress = address 
       Exit For 
      End If 
     Next 

     ' you will have to check beyond this point to ensure 
     ' there is a valid address before connecting 

     Dim client = New TcpClient() 
     Try 
      ' attempt to connect on the address 
      client.Connect(ipAddress, 80) 

      ' do whatever you want with the connection 


     Catch ex As SocketException 
      ' error accessing the socket 
     Catch ex As ArgumentNullException 
      ' address is null 
      ' hopefully this will never happen 
     Catch ex As ArgumentOutOfRangeException 
      ' port must be from 0 to 64k (&HFFFF) 
      ' check and ensure you've used the right port 
     Catch ex As ObjectDisposedException 
      ' the tcpClient has been disposed 
      ' hopefully this will never happen 
     Catch ex As Exception 
      ' any other exception I haven't dreamt of 

     Finally 
      ' close the connection 

      ' the TcpClient.Close() method does not actually close the 
      ' underlying connection. You have to close it yourself. 
      ' http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B821625 
      client.GetStream().Close() 

      ' then close the client's connection 
      client.Close() 
     End Try 
    End Sub 

End Module 

Следует иметь в виду, что программирование сокетов довольно сложно, и вам придется тщательно протестировать свой код для всех случаев краев.

Удачи вам!

+0

большое спасибо. Очень полезно! :) –

Смежные вопросы