C++ builder TServerSocket 组件

//本文在c++ builder 10.3调试通过

//在以前的文章中介绍了标准的windows socek,本文介绍使用TServerSocket 组件,做服务端。

//1.安装组件

//Component->Install Packages->Add->弹出文件选择框->找到 dclsockets260.bpl->打开->Save

//2.新建窗体项目

//2.1在窗体上放置一个TShape组件(Palette->Addtional->TShape),设置名称为Shape1

//2.2.在窗体上放置一个TSeverSocket组件(Palette->Internet->TServerSocket)

//设置名称为ServerSocket1,设置属性

//设置事件的代码,点击下图右边空白自动产生事件关联的函数(蓝色部分)并且自动生成代码

//3.代码

#include <vcl.h>
#pragma hdrstop
#include "Unit7.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm7 *Form7;
TCustomWinSocket *Socket1 ;
//---------------------------------------------------------------------------
__fastcall TForm7::TForm7(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm7::FormCreate(TObject *Sender)
{ try
 {ServerSocket1->Active=true;//打开
 }
 catch(Exception &ex)
 {AnsiString str= "启动socket服务失败 ";
  str+= IntToStr(ServerSocket1->Port) ;
  str+=ex.Message;
  OutputDebugStringA(str.c_str());
 }
}
//-
//---------------------------------------------------------------------------
void __fastcall TForm7::ServerSocket1ClientConnect(TObject *Sender, TCustomWinSocket *Socket)//
{Shape1-> Brush->Color = clLime;//连接后绿灯亮
}
//---------------------------------------------------------------------------
void __fastcall TForm7::ServerSocket1ClientDisconnect(TObject *Sender, TCustomWinSocket *Socket)
{Shape1-> Brush->Color = clBtnFace;//关闭后绿灯灭
}
//---------------------------------------------------------------------------
void __fastcall TForm7::ServerSocket1ClientError(TObject *Sender, TCustomWinSocket *Socket,
          TErrorEvent ErrorEvent, int &ErrorCode)
{OutputDebugStringA("---------------error-----------------------");
 try
 {AnsiString s="Error:"+AnsiString(ErrorCode);
  if(ErrorCode==10053)
  Socket->Close();
  ErrorCode=0;
  }
  catch(...){}
}
//---------------------------------------------------------------------------
void __fastcall TForm7::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket)

{try
 {Socket1      = Socket;
  unsigned char Buf[1024] ;
  byte *p       = Buf  ;
  int  n       = Socket->ReceiveBuf(p,1024);
  char bufferOut[1000]="hello";
  Client1->SendBuf(&bufferOut,sizeof(bufferOut));
  }
  catch(...)
  {}
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值