Foxtable(狐表)用户栏目专家坐堂 → socket


  共有7446人关注过本帖树形打印复制链接

主题:socket

帅哥哟,离线,有人找我吗?
ttitt147
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:181 积分:1451 威望:0 精华:0 注册:2012/5/11 12:47:00
socket  发帖心情 Post By:2013/1/17 14:29:00 [只看该作者]

我需要用3000端口,ip是200.200.200.190

 

是不是在全局代码中加入下面的代码就可以实现?

 

Imports System
Imports System.Text
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports Microsoft.VisualBasic

Public Class GetSocket
  
   Private Shared Function ConnectSocket(server As String, port As Integer) As Socket
      Dim s As Socket = Nothing
      Dim hostEntry As IPHostEntry = Nothing     
    
         ' Get host related information.
        hostEntry = Dns.GetHostEntry(server)
        
         ' Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
         ' an exception that occurs when the host host IP Address is not compatible with the address family
         ' (typical in the IPv6 case).
      Dim address As IPAddress
 
        For Each address In  hostEntry.AddressList
            Dim endPoint As New IPEndPoint(address, port)
            Dim tempSocket As New Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp)
     
'tempSocket.Connect(endPoint)
           

            tempSocket.Connect(200.200.200.190,3000)


            If tempSocket.Connected Then
               s = tempSocket
               Exit For
            End If

         Next address
     
      Return s
   End Function
  
  
   ' This method requests the home page content for the specified server.
  
   Private Shared Function SocketSendReceive(server As String, port As Integer) As String
      'Set up variables and String to write to the server.
      Dim ascii As Encoding = Encoding.ASCII
      Dim request As String = "GET / HTTP/1.1" + ControlChars.Cr + ControlChars.Lf + "Host: " + server + ControlChars.Cr + ControlChars.Lf + "Connection: Close" + ControlChars.Cr + ControlChars.Lf + ControlChars.Cr + ControlChars.Lf
      Dim bytesSent As [Byte]() = ascii.GetBytes(request)
      Dim bytesReceived(255) As [Byte]
     
      ' Create a socket connection with the specified server and port.
      Dim s As Socket = ConnectSocket(server, port)
     
      If s Is Nothing Then
         Return "Connection failed"
      End If

      ' Send request to the server.
      s.Send(bytesSent, bytesSent.Length, 0)
     
      ' Receive the server  home page content.
      Dim bytes As Int32
     
      ' Read the first 256 bytes.
      Dim page as [String] = "Default HTML page on " + server + ":" + ControlChars.Cr + ControlChars.Lf
     
      ' The following will block until the page is transmitted.
      Do
         bytes = s.Receive(bytesReceived, bytesReceived.Length, 0)
            page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes)
      Loop While bytes > 0
     
      Return page
   End Function
  
   'Entry point which delegates to C-style main Private Function
   Public Overloads Shared Sub Main()
      Main(System.Environment.GetCommandLineArgs())
   End Sub
  
  
   Overloads Private Shared Sub Main(args() As String)
      Dim host As String
      Dim port As Integer = 80
     
      If args.Length = 1 Then
         ' If no server name is passed as argument to this program,
         ' use the current host name as default.
         host = Dns.GetHostName()
      Else
         host = args(1)
      End If
     
      Dim result As String = SocketSendReceive(host, port)
     
      Console.WriteLine(result)
   End Sub 'Main
End Class 


 回到顶部
帅哥哟,离线,有人找我吗?
ttitt147
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:181 积分:1451 威望:0 精华:0 注册:2012/5/11 12:47:00
  发帖心情 Post By:2013/1/17 14:38:00 [只看该作者]

提示类似 import System 未声明,不可用

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/17 14:42:00 [只看该作者]

 添加引用,请参考你发的另一个帖子。

 对于你的这种应用,最好在vs环境下编写测试通过以后,然后生成dll文件在狐表里直接引用,直接调用比较方便。

 回到顶部