服务器端:(VC++) //设定地址
serv.sin_addr.s_addr=htonl(INADDR_ANY);
serv.sin_family=AF_INET;
serv.sin_port=5000;//htons(5000);
addlen=sizeof(serv);
m_button.EnableWindow(FALSE);
//创建socket
sock=socket(AF_INET,SOCK_STREAM,0);
//绑定
if (bind(sock,(sockaddr*)&serv,addlen))
{
m_edit.SetWindowText("绑定错误");
}else
{
//m_list.InsertItem(count++,inet_ntoa(serv.sin_addr));
m_edit.SetWindowText("服务器创建成功");
//开始侦听
listen(sock,5);
//调用线程
AfxBeginThread(&thread,0);客户端:(C#) IPHostEntry iphe=null;
iphe=Dns.Resolve(Dns.GetHostName());
IPAddress myIP=IPAddress.Parse(this.textBox1.Text);
System.Net.IPEndPoint conn=new IPEndPoint(myIP,5000);
sock=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
try
{
sock.Connect(conn);
MessageBox.Show("连接成功");
}
catch(Exception ex)
{
MessageBox.Show( ex.Source + ex.Message);
}客户端始终连接不到,提示“不能做任何连接,因为目标机器积极的拒绝它”
服务器端和客户端在同一台机子上运行,而且没有防火墙服务器端程序为教课书的例程,应该是没问题
此时只研究连接,暂不考虑接收发送初学SOCKET,请高手指点一下,谢谢

解决方案 »

  1.   

    我觉得你服务器已经把5000端口占了,所以你client用tcp连时,当然就连不上了,把client换个机子,就可以了,我看过了,你的程序没问题。或者用udp也可以
      

  2.   

    一直都认为SOCKET和开发语言无关的,怎么会这样子呢,达人来指导一下吧
      

  3.   

    多谢tjvictor(初学者)我尝试过多种办法,比如把服务器和客户端分开,更换端口号等,都是出现同样的错误,连接不上快崩溃了,大虾们来指点一下哈
      

  4.   

    参看msdn提供的例子,
    Microsoft Visual Studio .NET 2003\SDK\v1.1\Samples\Applications\Wintalk
      

  5.   

    你用C#写个server的接收程序,看看能不能连上。我觉得你的client没有问题。
      

  6.   

    TO tjvictor(初学者) :
    你们是怎么连接的?能不能透露一点代码?
      

  7.   

    好的,我用C#做个服务端再试一下因为系统需求,服务器端肯定是VC++,因此有点麻烦
      

  8.   

    代码是那个学C++的人写的,我现在在网吧,不在公司,手边没有代码呀。把msdn打开,里面有写好的server和client的socket代码。
      

  9.   

    奇怪,用C#写的服务器端,就可以连接成功了,为什么VC++写的就连接不上呢?达人帮一把,多谢多谢啦