| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 630 人关注过本帖
标题:[求助]为什么我的服务器/客户端程序不能实现通信?
取消只看楼主 加入收藏
dulei256
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-11-17
收藏
 问题点数:0 回复次数:1 
[求助]为什么我的服务器/客户端程序不能实现通信?

/************************************/
//头文件MySc.h:
#include<winsock.h>
#include<stdio.h>
#define version MAKEWORD(1,1)
#define port 5150
#define False 0
#define Ture 1
/*************************************/
//服务器端:Server.cpp
#include "MySc.h"

void main(void)
{
WSADATA wsaData;
SOCKET ServerSocket;
SOCKET AcceptSocket;
SOCKADDR_IN ServerAddr;
SOCKADDR_IN ClientAddr;
int ClientAddrLen;
int Port=port;
int iReturn=0;
char RecvBuf[10];
int i;

//初始化为2.2版本
iReturn=WSAStartup(version,&wsaData);
if(iReturn!=0)
{
printf("ERROR11!");//ERROR
}

//创建一个套接字
ServerSocket=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(ServerSocket==INVALID_SOCKET)
{
printf("ERROR12!");//ERROR
}
ServerAddr.sin_family=AF_INET;
ServerAddr.sin_port=htons(Port);
ServerAddr.sin_addr.s_addr=inet_addr("192.168.20.145");

//将地址端口信息与创建的套接字绑定起来
iReturn=bind(ServerSocket, (SOCKADDR *)&ServerAddr, sizeof(ServerAddr));
if(iReturn==SOCKET_ERROR)
{
printf("ERROR13!");//ERROR
}

//监听套接字,监听客户端的连接情况
iReturn=listen(ServerSocket, 5);
if(iReturn==SOCKET_ERROR)
{
printf("ERROR14!");//ERROR
}

//接受一个连接请求
ClientAddrLen=sizeof(ClientAddrLen);
AcceptSocket=accept(ServerSocket, (SOCKADDR *)&ClientAddr, &ClientAddrLen);
if(AcceptSocket==INVALID_SOCKET)
{
printf("ERROR15!");//ERROR
}

//接受数据
iReturn=recv(AcceptSocket, RecvBuf, 10 ,0);
if(iReturn==SOCKET_ERROR)
{
printf("ERROR16!");//ERROR
}
else
for(i=0; i<10; i++)
{
printf("RECV %c",RecvBuf[i]);
}

//关闭套接字
closesocket(AcceptSocket);
closesocket(ServerSocket);

//释放套接字
WSACleanup();
}
/**************************************/
//客户端:Client.cpp

#include"MySc.h"

void main(void)
{
WSADATA wsaData;
SOCKET ClientSocket;
SOCKADDR_IN ServerAddr;
int Port=port;
char SendBuf[100];
int iReturn;
int i;

iReturn=WSAStartup(version,&wsaData);
if(iReturn!=0)
{
printf("ERROR1!");//ERROR
}

//创建一个套接字
ClientSocket=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(ClientSocket==INVALID_SOCKET)
{
printf("ERROR2!");//ERROR
}

//bzero(&ServerAddr.sin_zero,sizeof(ServerAddr.sin_zero));
//建立一个SOCKADDR_IN结构用于在Port端口连接一正在监听的服务器
ServerAddr.sin_family=AF_INET;
ServerAddr.sin_port=htons(Port);
ServerAddr.sin_addr.s_addr=inet_addr("192.168.20.145");//服务器的IP地址

//建立和服务器的连接
iReturn=connect(ClientSocket, (sockaddr *)&ServerAddr, sizeof(ServerAddr));
if(iReturn==SOCKET_ERROR)
{
printf("ERROR3!");//ERROR
}

//发送数据
//SendBuf[10]="123456789";
for(i=0; i<10; i++)
SendBuf[i]=i;
iReturn=send(ClientSocket,SendBuf,10,0);
if(iReturn==SOCKET_ERROR)
{
printf("ERROR4!");//ERROR
}

//关闭套接字
closesocket(ClientSocket);

//释放套接字
WSACleanup();
}

搜索更多相关主题的帖子: 服务器 客户端 通信 
2006-01-19 14:16
dulei256
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-11-17
收藏
得分:0 
问题解决了,呵呵
是我的工作环境设置得有问题
端口设置没有问题
2006-01-19 17:43
快速回复:[求助]为什么我的服务器/客户端程序不能实现通信?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027897 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved