synchronous socket error 10060 怎么解决?

monlight 2011-10-06 09:55:02
synchronous socket error 10060 怎么解决?
...全文
288 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
royallii 2011-10-15
  • 打赏
  • 举报
回复
你的程序就一个服务端,服务端去监听你设定的端口,客户端呢去连接本机的端口,应该不是端口的问题。另外,你的变量Server是不是设定的一个IP地址啊,你把它的值设定为“127.0.0.1”,监听端口呢设置一个比较大的比如“9999”试试,先测试通再说别的。测试通的话在OnConnect()函数提示。
monlight 2011-10-08
  • 打赏
  • 举报
回复
好的,谢谢,我试试。
monlight 2011-10-07
  • 打赏
  • 举报
回复
端口都设为1024,连接类型为非阻塞方式,其他的为默认。我想服务端和客户端都是自己的电脑,当我令服务器处于监听状态时,再链接,输入自己的电脑的IP地址,链接不上。
程序代码如下:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
listenItemClick(NULL);
}

void __fastcall TForm1::listenItemClick(TObject *Sender)
{
listenItem -> Checked =! listenItem -> Checked;
if (listenItem -> Checked)
{
ClientSocket -> Active = false;
ServerSocket -> Active = true;
StatusBar1 -> Panels -> Items[0] -> Text = "Listen...";
}
else
{
if (ServerSocket -> Active)
ServerSocket -> Active = false;
StatusBar1 -> Panels -> Items[0] -> Text = "";
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::connectItemClick(TObject *Sender)
{
if (ClientSocket -> Active)
ClientSocket -> Active = false;
if (InputQuery("Computer to connect to","Address Name:",Server))
{
if (Server.Length() > 0)
{
ClientSocket -> Address = Server;
ClientSocket -> Active = true;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocketConnect(TObject *Sender,
TCustomWinSocket *Socket)
{
StatusBar1 -> Panels -> Items[0] -> Text ="Connected to" + Socket-> RemoteAddress;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocketClientConnect(TObject *Sender,
TCustomWinSocket *Socket)
{
Memo2 -> Lines -> Clear();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocketAccept(TObject *Sender,
TCustomWinSocket *Socket)
{
IsServer = true;
StatusBar1 -> Panels -> Items[0] -> Text = "Conencted to"
+ Socket -> RemoteAddress;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Memo1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if (Key == VK_RETURN)
{
if (IsServer)
ServerSocket -> Socket -> Connections[0] -> SendText(
Memo1 -> Lines -> Strings[Memo1 -> Lines -> Count - 1]);
else
ClientSocket -> Socket -> SendText(
Memo1 -> Lines -> Strings[Memo1 -> Lines -> Count - 1]);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocketRead(TObject *Sender,
TCustomWinSocket *Socket)
{
Memo2 -> Lines -> Add(Socket -> ReceiveText());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocketClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
Memo2 -> Lines -> Add(Socket -> ReceiveText());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocketClientError(TObject *Sender,
TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
Memo2 -> Lines -> Add("Error connecting to : " + Server);
ErrorCode = 0;
}
//---------------------------------------------------------------------------
zzbinfo 2011-10-07
  • 打赏
  • 举报
回复
首先确认服务器是开着的,是正常的,端口也正常.
zzbinfo 2011-10-07
  • 打赏
  • 举报
回复
那这个错误就肯定是有了,你一个电脑,就是一个ip,同时要打开两次这个端口必然报错.你要用两台电脑才能测试通讯.

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧