windows 平台socket客户端
来源:互联网 发布:cf视频软件中文版 编辑:程序博客网 时间:2024/06/05 15:09
离职前写一个Windows上的小程序,socket client,在BCB平台通过调用Windows API实现简单的客户端。
/*** Filename: --mainForm.cpp** Function: --创建Socket,连接,并发送数据,调用Windows API实现Socket** Author: --ericteck** Date: --2011.9.21*///---------------------------------------------------------------------------#include <vcl.h>#pragma hdrstop#include "mainForm.h"#include "setServer.h"//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;/******************************************************** 主窗体类的构造函数******************************************************/__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){ this->Memo1->SetTextBuf("");}/******************************************************** 连接实现函数******************************************************/void __fastcall TForm1::Button_ConnectClick(TObject *Sender){ /* ** 初始化Scoket */ InitSocket(); /* ** 释放指针 */ free(pCIp); free(pCPort); pCIp = NULL; pCPort = NULL;}/******************************************************** 初始化Socket******************************************************/void __fastcall TForm1::InitSocket(){ /* ** 初始化 Windows Socket */ if ( WSAStartup(MAKEWORD(2,2), &Ws) != 0 ) { this->Memo1->SetTextBuf("Init Windows Socket Failed"); } /* ** 创建 Windows Socket */ CientSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if ( CientSocket == INVALID_SOCKET ) { this->Memo1->SetTextBuf("Create Socket Failed"); } /* ** Initialize server:协议,IP地址,端口 */ ServerAddr.sin_family = AF_INET; ServerAddr.sin_addr.s_addr = inet_addr(pCIp); ServerAddr.sin_port = htons(StrToInt(pCPort)); memset(ServerAddr.sin_zero, 0x00, 8);//让sockaddr_in匹配sockaddr /* ** 建立socket连接 */ Ret = connect(CientSocket,(struct sockaddr*)&ServerAddr, sizeof(ServerAddr)); if ( Ret == SOCKET_ERROR ) { this->Memo1->SetTextBuf("Connect Error"); } else { this->Memo1->SetTextBuf("连接成功!在此输入字符发送!"); }}/******************************************************** 断开socket连接******************************************************/void __fastcall TForm1::Button_DisconnectClick(TObject *Sender){ closesocket(CientSocket); WSACleanup();}/******************************************************** 关闭Socket******************************************************/void __fastcall TForm1::Button_CancelClick(TObject *Sender){ closesocket(CientSocket); WSACleanup(); this->Close();}/******************************************************** 发送数据******************************************************/void __fastcall TForm1::Button_SendClick(TObject *Sender){ /* ** 获取输入的数据 */ this->Memo1->GetTextBuf(this->SendBuffer,sizeof(SendBuffer)); /* ** 发送数据到缓存 */ if ( send(CientSocket, SendBuffer, (int)strlen(SendBuffer), 0) == SOCKET_ERROR ) { this->Memo1->SetTextBuf("Send Info Error"); }}/******************************************************** 设置Server的IP与Port******************************************************/void __fastcall TForm1::Button_SetClick(TObject *Sender){ TForm2 *Form2; Form2=new TForm2(Application);//动态创建Form2 Form2->Show();}
源代码:bcb_win_socketclient
- windows 平台socket客户端
- Windows Socket 客户端
- windows socket 客户端
- 【windows socket+TCP服务器客户端】
- 【windows socket+UDP服务器客户端】
- 【windows socket+HTTP服务器客户端】
- 【windows socket+UDP服务器客户端】
- Windows Socket编程客户端程序
- 【windows socket+UDP服务器客户端】
- mongodb客户端(windows平台)- MongoVUE
- Windows平台Socket通信实例
- 跨平台的游戏客户端Socket封装
- 跨平台的游戏客户端Socket封装
- 跨平台的游戏客户端Socket封装
- 跨平台的游戏客户端Socket封装
- 跨平台的游戏客户端Socket封装
- 跨平台的游戏客户端Socket封装
- 跨平台客户端Socket 一 数据包定义
- 一个路径相对于另一个路径
- 康托展开
- 'IplImage' : missing storage-class or type specifiers
- java中自动生成注册码的代码
- 在X下动态更改分辨率的工具——xrandr
- windows 平台socket客户端
- 企业一定要在变革中生存,在变革中发展
- hadoop心跳机制解析
- 关于设置http响应头connection的作用
- c++ 中使用stringstream对象来进行类型转换
- 粗解“new”之来龙去脉(三)
- android系统信息(内存,cpu,sd卡,电量,版本)的获取
- vim配色
- Spoj 1771(Dancing Links 精确覆盖变形)