`
gstarwd
  • 浏览: 1525438 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

VC+Socket 网络通讯示例

阅读更多
 VC+Socket 网络通讯示例  收藏

服务器端示例代码

#include <stdio.h>
#include <winsock.h>
#include <windows.h>

#define SERVER_SOCKET_ERROR 1
#define SOCKET_OK 0

#pragma comment(lib, "wsock32.lib")

void socketError(char*);

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, 
                    LPSTR lpCmdLine, int nShow)
{
    WORD sockVersion;
    WSADATA wsaData;
    int rVal;

    sockVersion = MAKEWORD(1,1);
    //start dll
    WSAStartup(sockVersion, &wsaData);

    //create socket
    SOCKET s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);

    if(s == INVALID_SOCKET)
    {
        socketError("Failed socket()");
        WSACleanup();
        return SERVER_SOCKET_ERROR;
    }

    //fill in sockaddr_in struct 

    SOCKADDR_IN sin;
    sin.sin_family = PF_INET;
    sin.sin_port = htons(8888);
    sin.sin_addr.s_addr = INADDR_ANY;

    //bind the socket
    rVal = bind(s, (LPSOCKADDR)&sin, sizeof(sin));
    if(rVal == SOCKET_ERROR)
    {
        socketError("Failed bind()");
        WSACleanup();
        return SERVER_SOCKET_ERROR;
    }

    //get socket to listen 
    rVal = listen(s, 2);
    if(rVal == SOCKET_ERROR)
    {
        socketError("Failed listen()");
        WSACleanup();
        return SERVER_SOCKET_ERROR;
    }

    //wait for a client
    SOCKET client;

    client = accept(s, NULL, NULL);

    if(client == INVALID_SOCKET)
    {
        socketError("Failed accept()");
        WSACleanup();
        return SERVER_SOCKET_ERROR;
    }

    //close process
    closesocket(client);
    closesocket(s);

    WSACleanup();

    return SOCKET_OK;
};

void socketError(char* str)
{
    MessageBox(NULL, str, "SOCKET ERROR", MB_OK);
};

客户端示例代码

#include <windows.h>
#include <winsock.h>

#pragma comment(lib, "wsock32.lib")

#define CS_ERROR 1
#define CS_OK 0

void sError(char*);

int WINAPI WinMain(HINSTANCE hHinst, HINSTANCE hPrevHinst, LPSTR lpCmdLine, 
                   int nShow)
{

    WORD version;
    WSADATA wsaData;
    int rVal=0;

    version = MAKEWORD(1,1);

    WSAStartup(version,(LPWSADATA)&wsaData);

    LPHOSTENT hostEntry;

    //store information about the server
    hostEntry = gethostbyname("hibbert");

    if(!hostEntry)
    {
        sError("Failed gethostbyname()");
        //WSACleanup();
        return CS_ERROR;
    }

    //create the socket
    SOCKET theSocket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);

    if(theSocket == SOCKET_ERROR)
    {
        sError("Failed socket()");
        return CS_ERROR;
    }

    //Fill in the sockaddr_in struct
    SOCKADDR_IN serverInfo;

    serverInfo.sin_family = PF_INET;
    serverInfo.sin_addr = *((LPIN_ADDR)*hostEntry->h_addr_list);

    serverInfo.sin_port = htons(8888);

    rVal=connect(theSocket,(LPSOCKADDR)&serverInfo, sizeof(serverInfo));
    if(rVal==SOCKET_ERROR)
    {
        sError("Failed connect()");
        return CS_ERROR;
    }

    closesocket(theSocket);
    WSACleanup();
    MessageBox(NULL, "Connection was made", "SOCKET", MB_OK);
    return CS_OK;
}

void sError(char *str)
{
    MessageBox(NULL, str, "SOCKET ERROR", MB_OK);
    WSACleanup();
}
 
分享到:
评论

相关推荐

    基于vc+socket++tcp+协议+简单+聊天+通讯+源程序代码(1)

    本项目“基于vc+socket++tcp+协议+简单+聊天+通讯+源程序代码”是一个基础的网络聊天应用程序,它利用VC++作为开发环境,Socket++库进行网络编程,TCP协议负责数据的可靠传输。源代码可能包含了以下几个核心部分: ...

    vc async socket异步网络通讯 示例

    1. Winsock库:Windows Socket API(Winsock)是微软为Windows操作系统提供的网络编程接口,它遵循Berkeley Sockets接口标准,使开发者能够创建跨平台的网络应用程序。 2. 套接字类型:在Winsock中,有两种主要的套...

    VC6.0 socket编程

    本主题聚焦于“VC6.0 Socket编程”,这是一个基于Visual C++ 6.0开发环境下的网络编程实践,主要涉及到如何利用Socket实现一对一的通信功能。 Socket编程的核心是Berkeley Sockets API,它允许开发者构建能够跨越...

    VC 网络通讯

    "VC 网络通讯"标题暗示我们正在讨论使用Microsoft Visual C++(简称VC)进行网络编程,特别是在Socket层面上。Socket是网络编程中的一个接口,允许应用程序通过网络发送和接收数据。 描述中提到的"socket通讯源代码...

    VB调用VC接口的socket客户端

    标题中的“VB调用VC接口的socket客户端”指的是在Visual Basic (VB)应用程序中通过动态链接库(DLL)调用由Visual C++ (VC)编写的Socket通信接口,实现网络通信功能。Socket是网络编程中的一种接口,它允许程序通过...

    VC6.0--socket编程服务器通信

    Socket编程是计算机网络编程中的重要组成部分,特别...通过VC6.0实现的Socket服务器通信示例,可以帮助初学者快速理解和实践网络编程的精髓。同时,不断探索和实践,你将能够熟练地运用Socket来解决各种网络通信问题。

    VC组播通讯示例代码

    本示例代码“VC组播通讯示例代码”专为在Visual C++ 6.0(VC6.0)环境下理解并实现组播通信提供了一个简明的教程。下面我们将深入探讨组播通信的基本概念、原理以及如何在VC6.0中实现它。 组播通信是一种网络通信...

    VS/VC 上位机网络通信 示例

    【标题】"VS/VC 上位机网络通信 示例"提供了基于Visual Studio 2010(C++)的一个基础网络通信教程,特别适合初学者学习。在本文中,我们将深入探讨如何利用C++和VS2010环境开发客户端与服务器应用程序,实现两者之间...

    VC工程,ssl通讯socket,服务端和客户端,简单易懂。

    VC工程中的sslServer和sslClient示例代码将提供直观的参考,帮助你理解如何在实际项目中实现SSL通信。 总结来说,本文介绍了如何在VC环境中使用OpenSSL库实现SSL通信,包括服务器和客户端的创建,以及数据的安全...

    TCP-UDP实时连接(其它源码-vc源码).rar_VC UDP_tcp vc_tcp 通讯_vc 网络_网络通讯

    在IT行业中,网络通讯是计算机科学的一个重要领域,TCP(传输控制协议)和UDP(用户数据报协议)是其中两种最常用的传输层协议。...在VC环境下,结合Winsock API,开发者可以构建出稳定且高效的网络通讯程序。

    VC6.0上的Socket通讯数据显示.rar

    总的来说,"VC6.0上的Socket通讯数据显示"项目展示了如何在C语言环境下利用Socket进行网络通信,并将接收到的16进制数据转化为10进制进行显示。这对于理解网络编程和C语言的实践应用具有重要的学习价值。通过这个...

    socket网络通讯

    Socket网络通讯是计算机网络编程中的一个关键概念,主要用于实现不同设备间的进程间通信(IPC)。在VC(Visual C++)环境下,我们可以利用MFC(Microsoft Foundation Classes)库来简化socket编程,实现服务器...

    简单明了的Windows Socket网路通讯

    在IT行业中,网络通讯是计算机科学的一个重要领域,特别是在客户端-服务器架构中,Windows Socket(通常称为Winsock)被广泛用于实现跨网络的通信。Windows Socket API为C++程序员提供了一个标准化的接口,使得他们...

    vc网络通讯编程实例

    以上知识点在提供的"VC网络通讯编程实例"中应有示例代码,通过分析www.pudn.com.txt和"VC网络通讯编程实例"这两个文件,开发者可以学习到具体的实现细节和技巧。实际操作这些代码将有助于加深理解和提高编程能力。在...

    VC实现进程之间的通讯

    在提供的压缩包"Code"中,可能包含了示例代码,你可以通过查看这些代码学习如何在VC中实现具体的进程间通信方式。通过对这些代码的理解和实践,你可以深入掌握在VC环境下进行进程间通信的技巧。

    VC和浏览器通讯

    文件名为“Multi_Socket”的压缩包可能包含了实现多socket客户端通讯的示例代码或教程,包括如何创建和管理多个socket,如何发送和接收数据,以及如何处理网络事件。通过研究这些资料,开发者可以深入理解并实践VC与...

    VC编写的网络通信程序

    在本文中,我们将深入探讨如何使用...在"第09章网络通信"的文件中,可能包含了关于如何在VC中实现上述过程的具体代码示例和详细解释。学习这些内容将有助于深入理解网络通信的原理,并具备实际开发网络应用程序的能力。

    vc++socket 通讯demo

    在VC++中,Socket编程主要用于实现网络通信,它允许应用程序通过Internet或局域网发送和接收数据。在本文中,我们将深入探讨如何在VC++环境中使用Socket进行TCP通信,包括服务器端和客户端的编程步骤。 首先,让...

    vc-MFC-程序串口调试源码、Socket源码打包

    在本资源包中,“vc-MFC-程序串口调试源码、Socket源码打包”包含了一些使用MFC进行串口通信和Socket网络通信的示例项目。 首先,让我们深入了解一下MFC中的串口通信。串口通信,也称为串行通信,是设备间通过串行...

    tcpip通讯程序.rar_TCPIP VC_UDP/TCP VC_VC TCP_Vc_tcp vc

    在这个“tcpip通讯程序.rar”压缩包中,包含的是使用Visual C++(VC)编写的TCP和UDP服务器及客户端应用程序。这些源代码和可执行文件对于学习和理解TCP/IP协议在VC环境下的实现具有很大的帮助。 TCP(Transmission...

Global site tag (gtag.js) - Google Analytics