windows 平台socket客户端

Windows Socket五种I/O模型——代码全攻略 如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)共五种I/O模型。每一种模型均适用于一种特定的应用场景。程序员应该对自己的应用需求非常明确,而且综合考虑 阅读详情

离职前写一个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

Socket介绍及C实现TFTP客户端 Socket套接字编程介绍。 TFTP客户端的简单实现。 阅读详情

相关推荐

c语言实现socket编程--客户端客户端之间通过服务器进行通讯

#include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include...

xiximimio的博客 1万+

socket5协议简单客户端

简单的socket5协议客户端,使用了QTCPsocket类和QThread类。

Windows平台TCP通信实战:服务端与多客户端Socket编程

网络编程是一种允许两个程序之间通过网络进行通信的技术,而Socket(套接字)则是实现这一功能的基础。Socket API提供了一组函数,用于创建网络通信的端点,并通过这些端点发送和接收数据。在IT领域中,网络编程是构建分布式系统的关键技术之一。在Windows环境下,服务端程序通常运行在一种特殊的执行环境中,即服务(Service)。服务端架构的设计至关重要,它决定了程序的整体行为和性能表现。一个典型的服务端程序模型可以划分为以下几个核心组成部分:监听器(Listener)

weixin_35815766的博客 1006

蓝恒 Windows Scoket5 代理服务器搭建程序

蓝恒Socket5服务器 是一款用于在Windows系统下架设Socket5代理的服务器程序,可对客户端提供各类相关网络服。 蓝恒Socket5服务器功能介绍: Socket5代理为一种互谅网类似于Http代理的一种高效稳定的代理,可用户代理各类相关网络服务。 程序支持账户批量生成,批量管理,可完全根据您的设定设置用户代理的可用是,支持IP与端口的完全自定等. 完美支持第三方开发接口对接,可与各类第三方应用程序完美结合使用,符合Socket5完全接口标准. 快速高效持久稳定运行,可根据服务器进行全智能自动调节网络资源,简单操作,方便快捷。 全能后方技术保障,时时程序支持,时时免费更新,提供解决各类网络应用组建建议,让您的后顾无忧。

secureCRT-socket5代理访问网络上网

需求作用: 主机Windows不能访问网络上网,主机Linux可以访问网络上网;主机Windows可以ssh访问主机Linux。 可以通过主机Windows软件secureCRT,ssh登录主机Linux,并做端口转发socket5代里上网。 配置步骤 1、配置windowsCRT(对应登录Linux的会话)选项->会话选项>端口转发>添加(本地监听ip127.0.0.1,端口10068;勾选使用socket…) 2、上网方式1 可以使用Windows浏览器配置代理如下127.0.0.1

ZhouGuo520的博客 2828

Windows 环境下的 Socket 编程 5 - 套接字的可选项

套接字的可选项是指在进行网络编程时,套接字(Socket)的一些参数和设置,这些参数和设置可以根据实际需要进行配置。

朱工的专栏 914

win服务通过CCProxy软件搭建Socket5代理

win服务通过CCProxy软件搭建Socket5代理

炫爱小七的博客 4687

Windows——socket客户端与服务端

作者:小 琛 欢迎转载,请标明出处 Windows下的socket与Linux下有些许不同,有关Windowssocket初始化内容,翻看前篇博客: Windowssocket初始化 Windows-socket客户端与服务端编程流程相关函数创建套接字绑定套接字侦听套接字连接套接字接受连接发送、接收数据断开连接实战 客户端与服务端编程流程 相关函数 创建套接字 网络编程中,绕不开的一个话题:字节序问题 addrinfo 结构体 typedef struct addrinfo { int

qq_44745063的博客 3616

平台网络编程,多个windows客户端与linux服务端socket通信,epoll实现i/o复用

本文实现Windows客户端与linux服务器之间的通信,socket网络编程。 实现多个客户端连接一个服务器采用的方法不是用while循环,而是更高效的epoll i/o复用,当然你也可以用select 和poll。 windows客户端(vs2013): #include <stdio.h> #include <Windows.h> #include <s...

qq_40340448的博客 1201

Windows平台Socket编程之TCP示例代码

Windows平台Socket编程之TCP示例代码 去发现同类优质开源项目:https://gitcode.com/ 简介 本资源包含了一个使用TCP协议进行Socket编程的简单示例,适用于Windows平台。示例中包括服务器端和客户端两个部分,用以演示TCP连接的创建、数据的发送与接收以及连接的终止。 文件内容 服务器端代码:负责监听指定端口,等待客户端的连接请求。连接建立后,服务器会向客...

gitblog_06742的博客 536

Windows 平台下的 TCP 客户端

本文介绍了Windows平台TCP客户端与Linux服务端跨平台通信的实现方法。文章首先说明了验证目标:确保Windows TCP客户端能正常连接Linux服务端,强调跨平台互通对实用性的重要性。然后详细讲解了Windows TCP客户端的编写流程,包括Winsock初始化、套接字创建、服务端地址配置、连接建立和数据收发等关键步骤,并提供了完整代码示例。通过实操演示了从Visual Studio创建项目、配置IP和端口,到最终实现双向通信的全过程。特别指出TCP协议具备连接状态感知能力,能准确检测客户端断开

Small_entreprene的博客 224

WindowsSocket五种模型

有关5windows Socket模型的详细讲解

【亲测免费】 Socket.IO-client-csharp:.NET 平台Socket.IO 客户端实现

Socket.IO-client-csharp:.NET 平台Socket.IO 客户端实现 1. 项目基础介绍 Socket.IO-client-csharp 是一个开源项目,旨在为 .NET 平台提供 Socket.IO 客户端实现。该项目基于 MIT 许可,主要由 C# 编程语言开发。 2. 核心功能 Socket.IO-client-csharp 的核心功能包括: 支持 Socket...

gitblog_00394的博客 500

Windows下C++实现Socket客户端通信实战指南

在计算机网络中,TCP/IP模型是一种分层的架构,它定义了如何将数据从一台计算机传输到另一台计算机。模型共分为四层,每一层都有特定的功能和协议。最底层是链接层,它负责网络中硬件之间的数据传输;紧接着是网络层,主要负责将数据包从源端传送到目的端;第三层是传输层,它提供了端到端的通信服务;顶层是应用层,它负责处理特定的应用程序细节。这种分层模型的一个主要优点是它简化了网络设计。每一层只关注于完成自己层面的任务,而不必关心其他层的具体实现。

weixin_42513209的博客 973

Linux与Windows平台Socket通信程序开发

在现代分布式系统与企业级应用开发中,Linux与Windows之间的通信已成为构建高效、稳定服务的关键环节。由于操作系统内核机制、API接口及网络协议栈实现的差异,跨平台通信不仅要求数据能准确传输,还需解决字节序、数据对齐、错误处理等底层兼容性问题。跨平台通信广泛应用于混合架构服务器、微服务系统、远程监控与数据同步等场景。例如,在企业内部,Linux作为后端服务器运行高性能服务,而前端管理工具则运行于Windows平台,两者需通过TCP/IP协议进行数据交互。

weixin_36122351的博客 616

Windows平台Socket编程之TCP示例代码:简化网络通信的入门实践

Windows平台Socket编程之TCP示例代码:简化网络通信的入门实践 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在现代软件开发领域,网络编程是一项至关重要的技能。今天,我们为您推荐一个适用于Windows平台的网络编程入门项目——Windows平台Socket编程之TCP示例代码。这个项目通过简洁明了的代码示例,帮助开发者快速理解并掌握在Windows环...

gitblog_06709的博客 708

Linux网络-Socket套接字_Windows与Linux端双平台基于Udp传输协议进行多线程跨平台的服务器与客户端网络通信的简易聊天室实现

由于我们习惯将IP地址 写成这样的格式xxx.xxx.xxx.xxx(例如192.168.0.1),而在网络层面,我们肯定是采用四字节的int来存储IP,所以有这么一个函数将一个xxx.xxx.xxx.xxx的格式的IP转换为四字节int。我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分, 磁盘文件中的多字节数据相对于文件中的偏移地址也有大端小端之分, 网络数据流同样有大端小端之分. 那么如何定义网络数据流的地址呢?绑定这样的默认IP,就可以收到任意IP发来的消息。

fengjunziya的博客 1342
上一篇: ubuntu10.04去掉桌面显示windows盘符
下一篇: ubuntu改变桌面路径
ericteck
博客等级 码龄15年 0粉丝 6原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值