c++ Builder高手请进!!TClienSocket控件网络通讯

kongwuyan 2010-11-24 09:57:41
一个简单的程序:就是客户端向服务端发送一个结构体数据,但老是报错!程序如下:
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
struct r
{
unsigned int ID;
unsigned int state;
unsigned int current[2];
};
r *rmes;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
m_sHostAddress="192.0.0.0";//服务器端口号
ClientSocket1->Active=false;
ClientSocket1->Address=m_sHostAddress;
ClientSocket1->Port=8888;
m_HasConnected=false;

}
//---------------------------------------------------------------------------



//---------------------------------------------------------------------------
void __fastcall TForm1::MenuConnectClick(TObject *Sender)//菜单点击链接
{

if(ClientSocket1->Active==false)
ClientSocket1->Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,
TCustomWinSocket *Socket)
{
m_HasConnected=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Error(TObject *Sender,
TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
ErrorCode=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
rmes->ID=1;
rmes->state=0;
rmes->current[0]=100;
rmes->current[1]=20;
if(m_HasConnected)
{
ClientSocket1->Socket->SendBuf(&rmes,sizeof(rmes)) ;
}
}
//---------------------------------------------------------------------------


void __fastcall TForm1::ClientSocket1Disconnect(TObject *Sender,
TCustomWinSocket *Socket)
{
ShowMessage("连接断开");
m_HasConnected=false;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::MenudisconnectClick(TObject *Sender)
{
m_HasConnected=false;
ClientSocket1->Close();
}
//---------------------------------------------------------------------------
报错:
Project Project1.exe raised exception class EOSError with message‘System Error.Code1410’类别已存在。Process stopped.
不明白为什么?

...全文
150 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2010-11-25
  • 打赏
  • 举报
回复
先清理一下旧工程遗留的文件,如工程目录中的.obj文件 .tds文件等,重新Build一下。
kongwuyan 2010-11-25
  • 打赏
  • 举报
回复
知道怎么解决了,原来我程序里有个状态条使用错了,非常感谢你们!
kongwuyan 2010-11-25
  • 打赏
  • 举报
回复
ccrun
(妖哥 低调 冷静 专注 敬业)
我按你说的去做了,重建了一个工程,编译没问题,但是点击菜单上的连接按钮,还是包这样的错误:
Project Project1.exe raised exception class ElistError with message "List index out of bounds(1)",期待您的帮助,万分感谢
ccrun.com 2010-11-25
  • 打赏
  • 举报
回复
谁告诉你删掉那一段的?真是误导人。

不建议你直接修改bpr文件。

目前这情况下,你最好是重建一个工程,然后将现有单元添加进去重新编译。
kongwuyan 2010-11-25
  • 打赏
  • 举报
回复
zhouzhangkui

(周药师)
上面写错了,不是Button按钮,是点击一下菜单上的连接按钮就出错:Project Project1.exe raised exception class ElistError with message "List index out of bounds(1)",这是为什么啊?
kongwuyan 2010-11-25
  • 打赏
  • 举报
回复
zhouzhangkui

(周药师)
我找到了default.bpr文件,将其中<SPARELIBS value="vcl.lib rtl.lib dbrtl.lib vcldb.lib adortl.lib"/>这段删掉了,编译也没问题现在点击Button按扭又报这样的错误:
Project Project1.exe raised exception class ElistError with message "List index out of bounds(1)",这是为什么啊?
YeBinYe 2010-11-25
  • 打赏
  • 举报
回复
192.0.0.0代表的是一个网络地址,你这是和谁进行通信啊?在本机测试还是在局域网间测试?
YeBinYe 2010-11-25
  • 打赏
  • 举报
回复
m_sHostAddress="192.0.0.0";??
LillteLillteHui 2010-11-25
  • 打赏
  • 举报
回复
按照你的程序,你不需要把mes定义成结构体指针,试试


也就是定义成 r mes;你试试

周药师 2010-11-25
  • 打赏
  • 举报
回复
lz还未出现?
你的“Code1410”问题跟default.bpr 文件有关
具体的 你自己去谷歌一下就行了 懒得给你去查了
周药师 2010-11-25
  • 打赏
  • 举报
回复
首先设置好的IP地址
代码中有一个错误


void __fastcall TForm1::Button1Click(TObject *Sender)
{
rmes = new r; //添加 动态分配空间
rmes->ID=1;
rmes->state=0;
rmes->current[0]=100;
rmes->current[1]=20;
if(m_HasConnected)
{
ClientSocket1->Socket->SendBuf(&rmes,sizeof(rmes)) ;
}
}
kongwuyan 2010-11-25
  • 打赏
  • 举报
回复
有没有人来帮我解决这个问题啊?万分感谢
kongwuyan 2010-11-25
  • 打赏
  • 举报
回复
不好意思,我写错了,其实是另一台计算机的IP地址,192.168.189.20,也就是两台计算机都联网,然后这两台计算机之间进行通信
Delphi XE2 正式版的破解程序,有效哦。 Delphi XE2 官方完整 delphicbuilder_xe2_win_dl.iso下载地址: http://altd.embarcadero.com/download/radstudio/xe2/delphicbuilder_xe2_win_dl.iso 文件大小: 2.33G MD5: de8b9f897e2ad678643b64898470b707 Delphi Prism XE2 - ISO 1.28G http://altd.embarcadero.com/download/prism/xe2/prism_xe2_win.iso RadPHP XE2 - ISO 343M http://altd.embarcadero.com/download/radphp/xe2/radphp_xe2_win.iso 建议大家用迅雷下载 ************************************** 英巴卡迪诺发布新版RAD Studio XE2开发工具套件 日前,英巴卡迪诺宣布发布新版RAD Studio XE2软件开发工具套件,新版包含了10多年来最深入全面的特性升级。RAD Studio XE2中包含了新版本的Delphi、C++Builder、Prism和RadPHP。主要特性包括完整的Delphi 64位Windows支持,通过全新的FireMonkey富商业应用平台支持Mac OSX和iOS,以及通过RadPHP XE2支持安卓web和移动应用开发。 对Delphi XE2和C++Builder XE2来说,一个极其重要的新特性就是FireMonkey,业界第一款用于创建商业软件的原生的能全面利用到CPU和GPU计算能力的富应用平台。使用 FireMonkey,Delphi和C++Builder开发人员能开发出视觉绚丽的高清和3D应用程序,并与后台的企业级数据库如Oracle、微软 SQL Server、IBM DB2、Sybase和其他数据库互联互通。FireMonkey应用以原生方式运行在Windows PC和Mac上,可以完全利用到现代GPU的处理能力,以不可置信的细节处理能力和优异的性能表现展现数据和用户界面。FireMonkey还可以使 Delphi XE2用户为移动(iOS)设备创建原生的高清和3D应用程序。 Delphi和C++Builder为应用开发提供原生开发方式,而RadPHP XE2则支持web开发和移动设备应用的开发。使用RadPHP XE2,开发人员可以轻松为移动智能电话和平板电脑创建支持触碰和UI优化的web应用。开发人员可以部署他们的移动Web应用为原生移动应用到苹果公司的iOS应用商店和安卓的应用市场。在他们的移动Web应用中,可以直接访问移动设备的硬件,如相机、GPS和重力感应器。 其他新增特性包括: Delphi XE2 和C++Builder XE2 Delphi XE2包括完整的Windows 64位对FireMonkey、编译器、调试器、RTL 和VCL的支持; dbExpress具有新的对InterBase XE, FireBird 2.5, SQL Anywhere 12 和ODBC的连接能力; 新的DataSnap移动连接器,带有原生的平台组件和示例以创建从移动客户端到Delphi DataSnap服务器的连接,支持安卓(Java), iOS (Objective C), 黑莓(Java) 和Windows Phone 7 (C#); 新增和更新的扩展工具,包括FastReport,用于快速设计和生成报表;Documentation Insight,用于Delphi的源代码文档工具; TeeChart、IBX、InstallAware、IP*Works、Aqtime、FinalBuilder、IntraWeb和Indy 的64位版本。 TeeChart、Indy和FinalBuilder还支持Mac平台; C++Builder XE2中还包含了新的代码审计和QA度量工具; LiveBindings使用户能连接任意类型的信息到任意的FireMonkey用户界面和图形对象上。用户可以绑定实时数据到标准的用户界面控件、高清或3D图形元素上,以创建可视化任意类型数据的崭新方式; RadPHP: 集成式为移动优化的Web开发; 部署应用到Web, iOS, 或安卓; 扩展的Zend框架组件集; Embarcadero Prism: 来自RemObjects的全新的.NET Oxygene编译器; 匿名接口实现; FastReport.net

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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