SOCKET编程入门求指导
在网上搜到的 简单的 C++ SOCKET编程 ---基于TCP/IP协议 ,照着写下来,客户端发消息服务端没反应,也不知道连没连到服务器,不明真相。
复制代码有点多,不过为了知道具体原因我还是硬着头皮粘贴上来吧
客户端:
调用方法:
服务器:
调用方法:
复制代码有点多,不过为了知道具体原因我还是硬着头皮粘贴上来吧
客户端:
void Main::CreateSocket(void)
{
WORD myVersionRequest = MAKEWORD(2, 2);
WSADATA wsaData;
int errorCode = WSAStartup(myVersionRequest, &wsaData);
if(errorCode)
{
printf("Socket Startup Failed: %d\n", GetLastError());
}
else if(LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!=1)
{
printf("Socket Startup Failed: %d\n", GetLastError());
WSACleanup();
}
else
{
printf("Socket Startup successed\n");
}
}
void Main::Connect(void)
{
sockClient=socket(AF_INET, SOCK_STREAM, 0);
SOCKADDR_IN addr;
addr.sin_family = AF_INET;
addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
addr.sin_port = htons(6000);
connect(sockClient, (SOCKADDR*)&addr, sizeof(SOCKADDR));
printf("Connected to server");
}
void Main::Send(char* str)
{
send(sockClient, str, strlen(str)+1,0);
printf("Sending \"%s\"...", str);
}
void Main::Disconnect(void)
{
closesocket(sockClient);
printf("Disconnected from server");
}
void Main::DestroySocket(void)
{
WSACleanup();
printf("Socket Destroyed\n");
}调用方法:
int _tmain(int argc, _TCHAR* argv[])
{
Main client;
client.CreateSocket();
client.Connect();
while(1)
{
printf("\nEnter Message:\n");
char msg[100];
std::cin.getline(msg, 100);
client.Send(msg);
}
client.Disconnect();
client.DestroySocket();
return 0;
}服务器:
void Main::CreateSocket(void)
{
WORD myVersionRequest = MAKEWORD(2, 2);
WSADATA wsaData;
int errorCode = WSAStartup(myVersionRequest, &wsaData);
if(errorCode || LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!=1){
printf("Socket Startup Failed: %d\n", GetLastError());
}
printf("Socket Startup successed\n");
}
void Main::StartListen(void)
{
SOCKET serverSocket = socket(AF_INET, SOCK_STREAM, 0);
SOCKADDR_IN addr;
addr.sin_family = AF_INET;
addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addr.sin_port = htons(6000);
bind(serverSocket, (SOCKADDR*)&addr, sizeof(SOCKADDR));
listen(serverSocket, 1);
printf("Listening...\n");
listening = true;
SOCKADDR_IN clientAddr;
int len = sizeof(SOCKADDR);
while(listening)
{
SOCKET sockConn = accept(serverSocket, (SOCKADDR*)&clientAddr, &len);
char recvBuffer[100];
recv(sockConn, recvBuffer, strlen(recvBuffer)+1, 0);
printf("Received From Client: %s\n", recvBuffer);
closesocket(sockConn);
}
}
void Main::StopListen(void)
{
listening = false;
}
void Main::DestroySocket(void)
{
WSACleanup();
printf("Socket Destroyed\n");
}调用方法:
int _tmain(int argc, _TCHAR* argv[])
{
Main server;
server.CreateSocket();
server.StartListen();
server.StopListen();
server.DestroySocket();
return 0;
}
...全文
相关推荐
Socket编程例子
关闭连接:完成通信后,客户端和服务器都需要调用`close()`函数关闭Socket,释放资源。三、UDP Socket编程UDP Socket编程相比TCP更简单,因为它不需要建立和维护连接。
C# Socket编程入门实例
本入门实例将带你走进C# Socket编程的世界,通过具体的代码示例,帮助你理解其核心概念和用法。首先,Socket是网络通信中的一个接口(API),它允许应用程序通过网络发送和接收数据。
新手socket编程入门详解指南
Socket 编程入门详解指南本文将一步一步引导初学者来学习 socket 编程,所有编程思路都结合在 socket API 里面,以及提供 socket 的疑问和基础知识点,同时在最后给出多个例程,下面可以和小编一起学习
VC_socket编程入门实例
**VC_socket编程入门实例**在计算机编程领域,网络通信是一个重要的组成部分,特别是在分布式系统和互联网应用中。
C_socket编程从入门到精通
【C_socket编程从入门到精通】的探讨C语言中的Socket编程是网络编程的基础,它提供了进程间通信的能力,使得程序能够通过网络发送和接收数据。


网络编程
