簡體   English   中英

如何在C#中從客戶端的主機名和端口號在Web服務器上創建套接字?

[英]How to create a socket on client side to web server from its hostname and Port number in C#?

我想創建一個知道服務器的主機名和端口的Web服務器的客戶端套接字。 我是從Java背景中提出這個問題的,您可以在其中簡單地編寫如下內容

       Socket MyClient;
       try 
       {
            MyClient = new Socket("Hostname", PortNumber);
       }
      catch (IOException e) 
       {
            System.out.println(e);
       }

有沒有類似的方式在C#中編寫代碼?

如果您打算使用套接字進行HTTP通信,則無需重新設計輪子。 您可以使用WebClient類為您完成骯臟的工作。

這里給你樣品。

   private string getHTTP(string url)
    {
        TcpClient clientSocket = new TcpClient();
        NetworkStream networkStream = null;
        long port = 7777;
        try
        {
            try
            {

                clientSocket.Connect(url,port );
            }
            catch { MessageBox.Show("Server is not Working", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning); return "Server is not working"; }
            byte[] sendbyte = Encoding.ASCII.GetBytes(url);

            networkStream = clientSocket.GetStream();
            networkStream.Write(sendbyte, 0, sendbyte.Length);
            networkStream.Flush();
        }
        catch { MessageBox.Show("Streaming Error", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning); return "Error"; }
        // receive Message from DNS Server
        byte[] receivedata = new byte[clientSocket.ReceiveBufferSize];
        networkStream.Read(receivedata, 0, clientSocket.ReceiveBufferSize);

        string urlnew = Encoding.ASCII.GetString(receivedata);

        return urlnew;
    }

更多,您應該參考此鏈接

從提供了一個主意的答案中,我認為這可能是簡單的答案:

    public Socket getSocket1(string Hostname, int PortNmber)
    {
        TcpClient client = new TcpClient(Hostname, PortNumber);
        return client.Client;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM