日期:2014-05-18  浏览次数:20889 次

C#和VC之间socket通信的问题~来的有分~谢谢!急!
需要做C#和VC之间socket通信的程序,C#是客户端,VC++是服务器
现在C#和C#之间通信,已经没有问题,因为对VC不太熟悉,从网上找了些VC做的聊天之类的程序。
现在用C#连接VC怎么也连不上~提示:由于目标机器积极拒绝,无法连接
C#端:
private void button1_Click(object sender, EventArgs e)
  {
  try
  {
  IPAddress myIP = IPAddress.Parse("127.0.0.1");
  MyServer = new IPEndPoint(myIP, 5000);
  connectsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  connectsock.Connect(MyServer);
  listBox1.Items.Add("与主机" + "127.0.0.1 " + "端口" + " 5000 " + "连接成功!\r\n");
  thread = new Thread(new ThreadStart(receive));
  thread.Start();
  }
  catch (Exception ee)
  {
  listBox1.Items.Add(ee.Message);
  }
  }

VC端:
  SOCKET mySocket; 
  SOCKADDR_IN ServerAddr; 
  mySocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  ServerAddr.sin_family = AF_INET;
  ServerAddr.sin_port = htons(5000);  
  ServerAddr.sin_addr.s_addr = inet_addr("127.0.0.1");


哪里的问题呢??好郁闷啊~ 
谁有现成的C#和VC连接成功的实例给提供一下 那就更好了! 
谢谢帮忙~

------解决方案--------------------
服务端你又没开始监听,哪能连得到啊
------解决方案--------------------
1.看看服务器端监听有没有绑定IP地址,或者是没监听。
2.看看服务器端是否开了什么防火墙,或客户端有没有开什么防火墙。
------解决方案--------------------
侦听都不开 怎么通。。。。。

VC端 仅仅是写了个开头。。。
IP PORT。。。。。。。
------解决方案--------------------
首先确保VC的服务端是可用的,正确的;如果是正确的,查看C#编译是不是为unicode,如果是,改成非unicode
------解决方案--------------------
探讨
首先确保VC的服务端是可用的,正确的;如果是正确的,查看C#编译是不是为unicode,如果是,改成非unicode

------解决方案--------------------
这些完全可以让C++来实现,提供给你接口调用就行了,C#最好不要用自己的socket与C++相连,
------解决方案--------------------
VC编译成DLL文件,在C#中调用
确保连接正确
------解决方案--------------------
学习~UP
------解决方案--------------------
学习一下,,SOCKET通信,俺也是刚学.
------解决方案--------------------
Socket通信中都是字节流罢了,结构体也好,类也好,都是需要你自己去按照约定的应用层协议来解析的
------解决方案--------------------
探讨
需要做C#和VC之间socket通信的程序,C#是客户端,VC++是服务器
现在C#和C#之间通信,已经没有问题,因为对VC不太熟悉,从网上找了些VC做的聊天之类的程序。
现在用C#连接VC怎么也连不上~提示:由于目标机器积极拒绝,无法连接
C#端:
private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                IPAddress myIP = IPAddress.Parse("127.0.0.1");
                MyServer = new IPEndPoint(myIP, 5000);
                connectsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                connectsock.Connect(MyServer);
                listBox1.Items.Add("与主机" + "127.0.0.1 " + "端口" + " 5000 " + "连接成功!\r\n");