none
我的程式在編譯時會出現warring,需要設定IP位址,我該如何加入IP位址?? RRS feed

  • 問題

  • 附上程式,警告訊息出現再紅字那一行,我該如何修改??

     

     

    using System;
    using System.Text;
    using System.Net.Sockets;
    using System.Threading;
    using System.Net;
    class ne5b
    {
     static void Main()
     {
                TcpListener tcp = new TcpListener(7200);
         tcp.Start() ; 
         Console.WriteLine("SERVER 通訊埠 7200 啟動 ");
         Socket soc  = tcp.AcceptSocket(); 
                thread tp = new thread(soc);
         Thread st =new Thread(new ThreadStart(tp.service));   
         st.Start();
                string message;    
         do{                            
                          Console.Write("輸入傳往 CLIENT 端的資料內容 :" );
            message=Console.ReadLine();
                          byte[] buff2=Encoding.Unicode.GetBytes(message);
            soc.Send(buff2,buff2.Length,0) ;   
           }while(true );
     }

    }


    class thread

     Socket client;
     public thread(Socket s)
     {  
      client = s;
            }
     
     public void service()
     {
                   
                    int length;                              
                    byte[] buff = new byte[1000] ;              
      while (true)
      {   
           length = client.Receive(buff,1000,0);   
                         Console.Write("\n顯示從 CLIENT 端傳來的資料內容 : " ) ;                    
           Console.WriteLine(Encoding.Unicode.GetString(buff,0,length));    
      }               
      
     }
    }

     

    2008年6月19日 上午 11:37

解答

  • hi,
    可以用程式去取得本地位址哦。

    Josh

    string HostName = Dns.GetHostName();
    IPHostEntry HostEntry = Dns.GetHostByName(HostName);
    string LocalIP = HostEntry.AddressList[0].ToString();

    2008年6月19日 下午 12:43

所有回覆

  • Hi,
    在TcpListener提供的建構元中,可設定IP和Port哦!

    Josh

    IPAddress ipAd = IPAddress.Parse("172.21.5.99");
    TcpListener tcp =new TcpListener(ipAd,7200);
    2008年6月19日 上午 11:57
  •  

    感謝你的幫助,如果我在別台變腦執行這個程式,事就要修改IP位址,才能正確的執行呢?

     

    2008年6月19日 下午 12:18
  • hi,
    可以用程式去取得本地位址哦。

    Josh

    string HostName = Dns.GetHostName();
    IPHostEntry HostEntry = Dns.GetHostByName(HostName);
    string LocalIP = HostEntry.AddressList[0].ToString();

    2008年6月19日 下午 12:43
  •  

    hi,

    我利用你的方法加進去,但是它出現下列警告訊息,這是指令過期的意思還是我ㄉ編譯程式過期??

    可以麻煩各位看的懂得大大幫幫小弟嗎!!

     

    1.cs(8,33): warning CS0618: 'System.Net.Dns.GetHostByName(string)' is obsolete:
            'GetHostByName is obsoleted for this type, please use GetHostEntry
            instead. http://go.microsoft.com/fwlink/?linkid=14202'

    2008年6月20日 上午 01:21
  • Hi,
    你的工具應該是VS 2005吧,GetHostByName在NET Framework 2.0已經不再使用了,
    可以使用GetHostEntry替代掉,就不會有過期的訊息出現。

    Josh
       
    Code Snippet

    IPHostEntry localHostEntry = null;

    string localHostName = "";
    IPAddress[] addrList = null;
       
    localHostName = Dns.GetHostName();
    localHostEntry = System.Net.Dns.GetHostEntry(localHostName);
    addrList=localHostEntry.AddressList;
    Console.WriteLine(addrList[0].ToString());




    2008年6月20日 上午 02:55
  • 真是非常感謝您的幫忙,不知道哪裡有可以介紹各種語法的用法以及範例?   *最好是中文介紹的

    我也是剛開始碰這個,非常感謝有這個論壇這麼多高手可以提供資訊。

    2008年6月20日 上午 05:29
  • hi,
    語法的部份可以到微軟的MSDN查詢,MSDN也有提供範例可以參考,
    擅用MSDN可以節省很多時間。
    http://msdn.microsoft.com/zh-tw/library/default.aspx

    Josh
    2008年6月20日 上午 05:49