|
|

楼主 |
发表于 2013-8-29 16:44:05
|
显示全部楼层
wangjie5540 发表于 2013-8-28 22:36
首先问下,你用的是windows吧?
用什么编译环境?
是windows,vc++;
我们的题目是模拟短息系统;
虽然没学过,但现在开始学。这不,一边上网查资料,一边看书,一边发帖学嘛。
今天有点进展了,但程序之间还是不能发送东西。
服务器(ip:10.14.8.206)
#include "stdafx.h"
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")
int main(int argc, char* argv[])
{
WSADATA wsaData;
WSAStartup(MAKEWORD(2,0),&wsaData);
SOCKET s=socket(AF_INET,SOCK_STREAM,0);//创建一个套间字
sockaddr_in sctAddr;
sctAddr.sin_family=AF_INET;
sctAddr.sin_port=htons(7153);
sctAddr.sin_addr.S_un.S_addr=inet_addr("10.14.8.206");
bind(s,(sockaddr*)&sctAddr,sizeof(sockaddr));//与本地ip绑定
listen(s,2);//监听
sockaddr_in addrofclient;//定义变量存远端地址
int nLen=sizeof(addrofclient);
while(true){
SOCKET ns=accept(s,(sockaddr*)&addrofclient,&nLen);//接受远端client连接请求
printf("%s请求和本机连接\n",inet_ntoa(addrofclient.sin_addr));
int i=send(ns,"Hello,my son!!!",sizeof("Hello,my son!!!"),0);//发送消息给client
char *cbuf="";
int j=recv(ns,cbuf,sizeof(cbuf),0);//接受client的消息
printf("%s:\n",cbuf);
printf("%d,%d",i,j);//打印revc和send的返回值
closesocket(ns);
}
closesocket(s);
WSACleanup();
return 0;
}
 |
|