关于SOCKET
我写了个程序
客户端程序为:
#include <vcl.h>
#pragma hdrstop
#include "clientUnit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ClientSocket1->Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
ClientSocket1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
ClientSocket1->Socket->SendText(Memo3->Text);
int length,i;
AnsiString ReceiveText,len;
ReceiveText = ClientSocket1->Socket->ReceiveText();
len = ReceiveText.SubString(0,10);
i=0;
while (len.SubString(i,1) != " ")
i = i+1;
len = len.SubString(0,i-1);
length = len.ToInt();
Memo1->Text = ReceiveText.SubString(11,length);
Memo2->Text = ReceiveText.SubString(11+length,ReceiveText.Length());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,
TCustomWinSocket *Socket)
{
//Memo1->Text = "Connect";
}
//---------------------------------------------------------------------------
服务端程序为:
#include <vcl.h>
#pragma hdrstop
#include "serverUnit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//int sum;
//sum = 0;
AnsiString SendText;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ServerSocket1->Active = true;
ServerSocket1->Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
ServerSocket1->Active = false;
ServerSocket1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender,
TCustomWinSocket *Socket)
{
//sum = sum + 1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientDisconnect(TObject *Sender,
TCustomWinSocket *Socket)
{
//sum = sum - 1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
int length,i,len;
AnsiString str;
Memo2->Lines->Add(Socket->RemoteHost);
Memo1->Lines->Add(Socket->ReceiveText());
length = Memo1->Text.Length();
str = IntToStr(length);
len = str.Length();
for (i = len;i < 10;i++)
{
str = str + " ";
}
SendText = str + Memo1->Text + Memo2->Text;
Socket->SendText(SendText);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientError(TObject *Sender,
TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
ErrorCode = 0;
}
//---------------------------------------------------------------------------
在调试状态下是可以用的,但编译以后运行就死机,请老手帮忙.