首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

请问关于Socket编程的一些有关问题

2012-02-09 
请教关于Socket编程的一些问题我在主窗体中用ShowModal调用了一个子窗体, 然后子窗体里添加了一个ClientSo

请教关于Socket编程的一些问题
我在主窗体中用ShowModal调用了一个子窗体, 然后子窗体里添加了一个ClientSocket和一个ServerSocket控件
在子窗体运行完程序返回到主窗体时报错了, 说是Asynchronous socket error 10061
请问这是怎么回事? 我对socket编程所知甚少....操作大概就是点击以后向服务器端发送数据,然后根据返回值执行相应的操作, 之前还显示过别的错误, 意思是说套接字只能使用1次什么的...

子窗体的操作代码如下:

  if(Edit1->Text==""||Edit2->Text=="")ShowMessage("请输入登陆帐号或密码");
  else
  {
  ClientSocket1->Active=true;
  ClientSocket1->Socket->SendText(Edit1->Text);
  ClientSocket1->Active=false;
  ClientSocket1->Close();
  ServerSocket1->Active=true;
  if(ServerSocket1->Socket->ReceiveLength()==3)
  {
  ShowMessage(ServerSocket1->Socket->ReceiveText());
  ServerSocket1->Active=false;
  ServerSocket1->Close();
  ClientSocket1->Close();
  login->Close();
  face->Show();

  }
  else
  {
  ShowMessage("用户名或密码错误");
  ServerSocket1->Active=false;
  ServerSocket1->Close();
  ClientSocket1->Close();
  }
  }


[解决办法]
error 10061目标主机主动拒绝,连接不能建立。
这通常是因为试图连接到一个远程主机上不活动的服务,如没有服务器应用程序处于执行状态。 

是不是服务端没有启动!
[解决办法]
呵呵 

你必须编写2个程序 一个程序是SERVER端,用来监听用。另一个程序是CLIENT端,用来连接SERVER端。

从你的错误描述来看,有可能没有运行SERVER端。

或者,CLIENT端上 连接的IP地址和端口不对。
[解决办法]
子窗体运行完程序返回到主窗体时Server被释放掉了。
[解决办法]
ClientSocket和一个ServerSocket控件

这两个控件应该放在主窗口上
[解决办法]
可以在同一台上操作吗?
没试过,按照你的报错提示,应该不行。
你找另外一台电脑试下就可以啦
[解决办法]

探讨
回复1楼:
服务器端我启动了呀? 只需要将ServerSocket的active置为true就是启动了监听状态了吧?


回复2楼:
我是Client端和Server端都在同一台机子上进行测试的, 分别是2个应用程序, 都启动了, 但就是显示连接不上
另外, 为了简化问题, 我直接创建了2个新的工程, 1个只有ClientSocket, 1个只有ServerSocket, 设置端口和本机IP后, 进行连接测试。在Client端建了一个按钮, 一点击就执行
{
ClientSocket1->Active=true…

[解决办法]
补充 : 最好先都在主窗口上实现
[解决办法]
把代码精简一下,贴出来需要完整一些
另外我觉得CSDN应该有一个能上传附件的功能
这样大家吧自己的相关代码弄一个工程文件
大家一编译就好解决问题了。尤其这种问题,光用文字描述不好确定什么问题

热点排行