分类:
2008-09-17 11:13:20
()
- ()
-- ()
[求助] Active与Socket
我在ActiveX控件上封装了Socket,做了一个C/S模式的,但是控件无法和服务器连接。哪位大哥大姐帮帮忙,先谢谢了。
1、我定义了定义了ClientSocket类,写法就是平常的写法,含:clientsocket.h,clientsocket.cpp
//实现部分
#include "clientsocket.h"
ClientSocket::ClientSocket()
{
Port=5150;
}
void ClientSocket::Create()
{
if ((Ret=WSAStartup(MAKEWORD(2,2),&wsaData))!=0)
{
{
cout < <"WSAStartup failed with error" <
if((s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==INVALID_SOCKET)
{
cout < <"socket failed with error:" <
return;
}
}
ServerAddr.sin_family=AF_INET;
ServerAddr.sin_port=htons(Port);
ServerAddr.sin_addr.s_addr=inet_addr("192.168.0.101");
if(connect(s,(SOCKADDR*)&ServerAddr,sizeof(ServerAddr))==SOCKET_ERROR)
{
cout < <"connect failed with error:" <
WSACleanup();
return;
}
}
bool ClientSocket::Recive(float p)
{
return false;
}
在ActiveX控件部分的情况是这样的:
CFPShowDataCtrl::CFPShowDataCtrl()
{
InitializeIIDs(&IID_DFPShowData, &IID_DFPShowDataEvents);
client_S.Create();//////启动连接
m_dNumber=0;
dtime=1000;
m_pQueue=new CQueue();
m_nPointPerGrid=10;
ELENUM=XNUM*m_nPointPerGrid;
m_colorLine=RGB(220,190,200);
}
执行时,控件的界面能显示,就是控件无法和服务器连接。
从上面的程序看不出什么,不能通讯要么是服务端的问题要么是发送端,首先你确认192.168.0.101 上的5150有线程在监听?服务端的防火墙是否把该服务屏蔽了?还有你可以把上面用COUT输出的提示信息用AfxMessageBox()显示出来,因为按你那样做即使有问题也不能显示出来。
全部时间均为北京时间. 现在时间是15:11 . |
Powered by: vBulletin Version 2.2.8
Translated and hacked by:
Copyright © Jelsoft Enterprises Limited 2000, 2001.