网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
利用socket编写windows和linux通讯程序
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

    socket编程大家都很熟悉,我在这里就不再罗嗦了。直接切入正题。该程序分两部分,server端和client端(谁都知道)。其中server端采用windows平台,那linux平台当然是client端了。
这里是server端程序
/**********************************/
/* it worked as server under windows platform */
/* written by mlsx 1998-2-7                     */
/************************************/

include <windows.h>
#include <stdio.h>
#pragma comment (lib,"WS2_32.lib")
#define USERPORT 10001
#define HOST_IP_ADDR "127.0.0.1"

main(int argc,char *argv)
{
char buf[128];
SOCKET s,ns;
struct sockaddr_in client;
struct sockaddr_in server;
int namelen,pklen;
int status;
WSADATA wsd;
if((status=WSAStartup(MAKEWORD(2,2),&wsd))!=0)
{
  perror("wsastartup() failed:");
   exit(1);
}
if((s=socket(AF_INET,SOCK_STREAM,0))< 0)
{
  perror("socket failed :");
  exit(1);
}
ZeroMemory(&server,sizeof(server));
server.sin_family=AF_INET;
server.sin_port=htons(USERPORT);
server.sin_addr.s_addr=htons(INADDR_ANY);
if(bind(s,(struct sockaddr *)&server,sizeof(server))<0)
{
  perror("bind() failed:");
  exit(2);
}
if(listen(s,4)!=0)
{
  perror("listen()failed :");
  exit(3);
}
while(1)
{
namelen=sizeof(client);
if((ns=accept(s,(struct sockaddr*)&client,&namelen))==-1)
{
  perror("accept()failed:");
  exit(4);
}
printf("accept successful");
for(;;)
{
  if((pklen=recv(ns,buf,128,0))<0)
  {
   perror("recv() failed:");
   exit(5);
  }
  else
   if(pklen==0)
   {
    printf("recv():return FAILED,connected is shut down");
    break;
   }
   else
    printf("recv():return success,packet length=%d context is %s\n",pklen,buf);
  
  Sleep(1);
  //printf("the buf is %s\n",buf);
  if(send(ns,buf,128,0)<0)
  {
   perror("send() failed:");
   break;
  }
  else
   printf("send() return success packet length is %d\n",pklen);
}
}
closesocket(ns);
closesocket(s);
printf("server ended successfully\n");
}



这里是client端程序

/**********************************/
/* it worked as client under linux platform */
/* written by mlsx 1998-2-7                     */
/************************************/
#include <windows.h>
//#include <winsock2.h>
#include <stdio.h>
#pragma comment (lib,"WS2_32.lib")
#define USERPO
  • 上一篇资讯: 解析VC++6中的指针
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号