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+协议+简单+聊天+通讯+源程序代码”是一个基础的网络聊天应用程序,它利用VC++作为开发环境,Socket++库进行网络编程,TCP协议负责数据的可靠传输。源代码可能包含了以下几个核心部分: ...
1. Winsock库:Windows Socket API(Winsock)是微软为Windows操作系统提供的网络编程接口,它遵循Berkeley Sockets接口标准,使开发者能够创建跨平台的网络应用程序。 2. 套接字类型:在Winsock中,有两种主要的套...
本主题聚焦于“VC6.0 Socket编程”,这是一个基于Visual C++ 6.0开发环境下的网络编程实践,主要涉及到如何利用Socket实现一对一的通信功能。 Socket编程的核心是Berkeley Sockets API,它允许开发者构建能够跨越...
"VC 网络通讯"标题暗示我们正在讨论使用Microsoft Visual C++(简称VC)进行网络编程,特别是在Socket层面上。Socket是网络编程中的一个接口,允许应用程序通过网络发送和接收数据。 描述中提到的"socket通讯源代码...
标题中的“VB调用VC接口的socket客户端”指的是在Visual Basic (VB)应用程序中通过动态链接库(DLL)调用由Visual C++ (VC)编写的Socket通信接口,实现网络通信功能。Socket是网络编程中的一种接口,它允许程序通过...
Socket编程是计算机网络编程中的重要组成部分,特别...通过VC6.0实现的Socket服务器通信示例,可以帮助初学者快速理解和实践网络编程的精髓。同时,不断探索和实践,你将能够熟练地运用Socket来解决各种网络通信问题。
本示例代码“VC组播通讯示例代码”专为在Visual C++ 6.0(VC6.0)环境下理解并实现组播通信提供了一个简明的教程。下面我们将深入探讨组播通信的基本概念、原理以及如何在VC6.0中实现它。 组播通信是一种网络通信...
【标题】"VS/VC 上位机网络通信 示例"提供了基于Visual Studio 2010(C++)的一个基础网络通信教程,特别适合初学者学习。在本文中,我们将深入探讨如何利用C++和VS2010环境开发客户端与服务器应用程序,实现两者之间...
VC工程中的sslServer和sslClient示例代码将提供直观的参考,帮助你理解如何在实际项目中实现SSL通信。 总结来说,本文介绍了如何在VC环境中使用OpenSSL库实现SSL通信,包括服务器和客户端的创建,以及数据的安全...
在IT行业中,网络通讯是计算机科学的一个重要领域,TCP(传输控制协议)和UDP(用户数据报协议)是其中两种最常用的传输层协议。...在VC环境下,结合Winsock API,开发者可以构建出稳定且高效的网络通讯程序。
总的来说,"VC6.0上的Socket通讯数据显示"项目展示了如何在C语言环境下利用Socket进行网络通信,并将接收到的16进制数据转化为10进制进行显示。这对于理解网络编程和C语言的实践应用具有重要的学习价值。通过这个...
Socket网络通讯是计算机网络编程中的一个关键概念,主要用于实现不同设备间的进程间通信(IPC)。在VC(Visual C++)环境下,我们可以利用MFC(Microsoft Foundation Classes)库来简化socket编程,实现服务器...
在IT行业中,网络通讯是计算机科学的一个重要领域,特别是在客户端-服务器架构中,Windows Socket(通常称为Winsock)被广泛用于实现跨网络的通信。Windows Socket API为C++程序员提供了一个标准化的接口,使得他们...
以上知识点在提供的"VC网络通讯编程实例"中应有示例代码,通过分析www.pudn.com.txt和"VC网络通讯编程实例"这两个文件,开发者可以学习到具体的实现细节和技巧。实际操作这些代码将有助于加深理解和提高编程能力。在...
在提供的压缩包"Code"中,可能包含了示例代码,你可以通过查看这些代码学习如何在VC中实现具体的进程间通信方式。通过对这些代码的理解和实践,你可以深入掌握在VC环境下进行进程间通信的技巧。
文件名为“Multi_Socket”的压缩包可能包含了实现多socket客户端通讯的示例代码或教程,包括如何创建和管理多个socket,如何发送和接收数据,以及如何处理网络事件。通过研究这些资料,开发者可以深入理解并实践VC与...
在本文中,我们将深入探讨如何使用...在"第09章网络通信"的文件中,可能包含了关于如何在VC中实现上述过程的具体代码示例和详细解释。学习这些内容将有助于深入理解网络通信的原理,并具备实际开发网络应用程序的能力。
在VC++中,Socket编程主要用于实现网络通信,它允许应用程序通过Internet或局域网发送和接收数据。在本文中,我们将深入探讨如何在VC++环境中使用Socket进行TCP通信,包括服务器端和客户端的编程步骤。 首先,让...
在本资源包中,“vc-MFC-程序串口调试源码、Socket源码打包”包含了一些使用MFC进行串口通信和Socket网络通信的示例项目。 首先,让我们深入了解一下MFC中的串口通信。串口通信,也称为串行通信,是设备间通过串行...
在这个“tcpip通讯程序.rar”压缩包中,包含的是使用Visual C++(VC)编写的TCP和UDP服务器及客户端应用程序。这些源代码和可执行文件对于学习和理解TCP/IP协议在VC环境下的实现具有很大的帮助。 TCP(Transmission...