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

c++ Builder!TClienSocket控件网络通讯

2012-02-13 
c++ Builder高手请进!!TClienSocket控件网络通讯一个简单的程序:就是客户端向服务端发送一个结构体数据,但

c++ Builder高手请进!!TClienSocket控件网络通讯
一个简单的程序:就是客户端向服务端发送一个结构体数据,但老是报错!程序如下:
#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.
不明白为什么?



[解决办法]
首先设置好的IP地址
代码中有一个错误

C/C++ code
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)) ; }}
[解决办法]
先清理一下旧工程遗留的文件,如工程目录中的.obj文件 .tds文件等,重新Build一下。

热点排行