请问,这个Socket编程,不太懂呢?
此例来自MSDN的例子:http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socket.aspx
  class Program
     {
         private static Socket ConnectSocket(string server, int port)
         {
             Socket s = null;
             IPHostEntry hostEntry = null;
             hostEntry = Dns.GetHostEntry(server);
             foreach (IPAddress address in hostEntry.AddressList)
             {
                 IPEndPoint ipe = new IPEndPoint(address, port);
                 Socket tempSocket = new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
                 tempSocket.Connect(ipe);  //自己电脑和自己电脑连接?
                 if (tempSocket.Connected)
                  {
                     s = tempSocket;
                     break;
                  }
                 else
                  {
                     continue;
                  }
              }
             return s;
         }
         private static string SocketSendReceive(string server, int port)
         {
             string request = "GET / HTTP/1.1\r\nHost: " + server +"\r\nConnection: Close\r\n\r\n";
             Byte[] bytesSent = Encoding.ASCII.GetBytes(request);
             Byte[] bytesReceived = new Byte[256];
             Socket s = ConnectSocket(server, port);
             if (s == null)
                 return ("Connection failed");
             s.Send(bytesSent, bytesSent.Length, 0);
             int bytes = 0;
             string page = "Default HTML page on " + server + ":\r\n";
             do
             {
                 bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
                 page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes);
             }
             while (bytes > 0);
             return page;
         }
         public static void Main(string[] args)
         {
             string host;
             int port = 80;
             if (args.Length == 0)
                 host = Dns.GetHostName();
             else
                 host = args[0];
             string result = SocketSendReceive(host, port);
             Console.WriteLine(result);
             Console.ReadKey();
         }
     }
我就不懂,自己电脑怎么能和自己电脑连接啊?什么意思啊?
------解决方案--------------------端口,自己电脑没错,但是程序中有server和client的概念。 通过Port进行通讯
------解决方案--------------------服务器和客户端是两个程序!囧!
------解决方案--------------------我理解是:在自己机器上的服务器程序和客户端程序相连的意思
------解决方案--------------------可以和本机连接,但是不能设置成127.0.0.1,要设成真正的IP地址。而且要注意服务端和客户端的端口号必须一致。
------解决方案--------------------是两个程序(Socket客户端和服务端)之间的通信,而不是写在一个程序里。
------解决方案--------------------socket不等价与你的电脑或者你的程序,一个电脑(或一个程序)可以有很多socket,一个socket包括ip和端口(port),只要端口不一样你的电脑就可以把socket区分开来(端口复用还可以达到多个socket共用一个端口port),tempsocket.Connect(ipe)就是用你这个tempsocket通过tcp连接另一个已监听的socket,所以socket连接只是两个socket之间的连接,而不是两个电脑之间的连接,虽然大都数情况都是用于不同电脑间的通讯。去看看tcp/ip五层协议吧
------解决方案--------------------你给的只是客户端代码,缺少服务端代码,要2个项目一起开启才能测试效果。
------解决方案--------------------