
网络编程???
有错吗?为什么输入信息回车就结束了什么也看不见//客户端代码intmain(intargc,char**argv){WSADATAwsd;SOCKETs;charsend...
有错吗?为什么输入信息回车就结束了什么也看不见
//客户端代码
int main(int argc, char **argv)
{
WSADATA wsd;
SOCKET s;
char sendbuf[2048];
int ret,i;
SOCKADDR_IN recipient;
if (WSAStartup(MAKEWORD(2, 2), &wsd) != 0)
{
printf("WSAStartup failed!\n");
return 1;
}
s = socket(AF_INET, SOCK_DGRAM, 0);
if (s == INVALID_SOCKET)
{
printf("socket() failed; %d\n", WSAGetLastError());
return 1;
}
recipient.sin_family = AF_INET;
recipient.sin_port = htons((short)iPort);
if ((recipient.sin_addr.s_addr = inet_addr(szRecipient))== INADDR_NONE)
{
struct hostent *host=NULL;
host = gethostbyname(szRecipient);
if (host)
CopyMemory(&recipient.sin_addr, host->h_addr_list[0],host->h_length);
else
{
printf("gethostbyname() failed: %d\n", WSAGetLastError());
WSACleanup();
return 1;
}
}
connect(s, (SOCKADDR *)&recipient,sizeof(recipient)) == SOCKET_ERROR)
while(1)
{
sendto(s,(const char*)sendbuf, dwLength, 0,(SOCKADDR *)&recipient, sizeof(recipient));
}
closesocket(s);
GlobalFree(sendbuf);
WSACleanup();
return 0;
}
//UDP服务代码
#include <winsock2.h>
#include <stdio.h>
#include <stdlib.h>
#pragma comment(lib, "ws2_32.lib")
#define DEFAULT_PORT 5150
#define DEFAULT_COUNT 25
#define DEFAULT_BUFFER_LENGTH 4096
int iPort = DEFAULT_PORT;
DWORD dwCount = DEFAULT_COUNT;
dwLength = DEFAULT_BUFFER_LENGTH;
BOOL bInterface = FALSE;
char szInterface[32];
int main(int argc, char **argv)
{
WSADATA wsd;
SOCKET s;
char recvbuf[2048];
int ret,i;
DWORD dwSenderSize;
SOCKADDR_IN sender,local;
if (WSAStartup(MAKEWORD(2,2), &wsd) != 0)
{
printf("WSAStartup failed!\n");
return 1;
}
s = socket(AF_INET, SOCK_DGRAM, 0);
if (s == INVALID_SOCKET)
{
printf("socket() failed; %d\n", WSAGetLastError());
return 1;
}
local.sin_family = AF_INET;
local.sin_port = htons((short)iPort);
if (bInterface)
local.sin_addr.s_addr = inet_addr(szInterface);
else
local.sin_addr.s_addr = htonl(INADDR_ANY);
int h0;
h0=sizeof(local);
if (bind(s, (SOCKADDR *)&local,h0) == SOCKET_ERROR)
{
printf("bind() failed: %d\n", WSAGetLastError());
return 1;
}
while(1)
{
accept(s, (SOCKADDR *)&local,h0);
dwSenderSize = sizeof(sender);
recvfrom(s, recvbuf, dwLength, 0, (SOCKADDR *)&sender, &dwSenderSize);
printf("[%s] sent me: '%s'\n", inet_ntoa(sender.sin_addr), recvbuf);
}
closesocket(s);
GlobalFree(recvbuf);
WSACleanup();
return 0;
} 展开
//客户端代码
int main(int argc, char **argv)
{
WSADATA wsd;
SOCKET s;
char sendbuf[2048];
int ret,i;
SOCKADDR_IN recipient;
if (WSAStartup(MAKEWORD(2, 2), &wsd) != 0)
{
printf("WSAStartup failed!\n");
return 1;
}
s = socket(AF_INET, SOCK_DGRAM, 0);
if (s == INVALID_SOCKET)
{
printf("socket() failed; %d\n", WSAGetLastError());
return 1;
}
recipient.sin_family = AF_INET;
recipient.sin_port = htons((short)iPort);
if ((recipient.sin_addr.s_addr = inet_addr(szRecipient))== INADDR_NONE)
{
struct hostent *host=NULL;
host = gethostbyname(szRecipient);
if (host)
CopyMemory(&recipient.sin_addr, host->h_addr_list[0],host->h_length);
else
{
printf("gethostbyname() failed: %d\n", WSAGetLastError());
WSACleanup();
return 1;
}
}
connect(s, (SOCKADDR *)&recipient,sizeof(recipient)) == SOCKET_ERROR)
while(1)
{
sendto(s,(const char*)sendbuf, dwLength, 0,(SOCKADDR *)&recipient, sizeof(recipient));
}
closesocket(s);
GlobalFree(sendbuf);
WSACleanup();
return 0;
}
//UDP服务代码
#include <winsock2.h>
#include <stdio.h>
#include <stdlib.h>
#pragma comment(lib, "ws2_32.lib")
#define DEFAULT_PORT 5150
#define DEFAULT_COUNT 25
#define DEFAULT_BUFFER_LENGTH 4096
int iPort = DEFAULT_PORT;
DWORD dwCount = DEFAULT_COUNT;
dwLength = DEFAULT_BUFFER_LENGTH;
BOOL bInterface = FALSE;
char szInterface[32];
int main(int argc, char **argv)
{
WSADATA wsd;
SOCKET s;
char recvbuf[2048];
int ret,i;
DWORD dwSenderSize;
SOCKADDR_IN sender,local;
if (WSAStartup(MAKEWORD(2,2), &wsd) != 0)
{
printf("WSAStartup failed!\n");
return 1;
}
s = socket(AF_INET, SOCK_DGRAM, 0);
if (s == INVALID_SOCKET)
{
printf("socket() failed; %d\n", WSAGetLastError());
return 1;
}
local.sin_family = AF_INET;
local.sin_port = htons((short)iPort);
if (bInterface)
local.sin_addr.s_addr = inet_addr(szInterface);
else
local.sin_addr.s_addr = htonl(INADDR_ANY);
int h0;
h0=sizeof(local);
if (bind(s, (SOCKADDR *)&local,h0) == SOCKET_ERROR)
{
printf("bind() failed: %d\n", WSAGetLastError());
return 1;
}
while(1)
{
accept(s, (SOCKADDR *)&local,h0);
dwSenderSize = sizeof(sender);
recvfrom(s, recvbuf, dwLength, 0, (SOCKADDR *)&sender, &dwSenderSize);
printf("[%s] sent me: '%s'\n", inet_ntoa(sender.sin_addr), recvbuf);
}
closesocket(s);
GlobalFree(recvbuf);
WSACleanup();
return 0;
} 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询