linux与windows通信

shuaiying 2008-01-09 11:15:26
在linux上用C编写循环服务器,在windows中用MFC建立客户端,相互间不能连接,客户端报告连接错误.在Linux下两者能通信,同样在windows下两者也能通信,为什么?
...全文
102 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuaiying 2008-01-10
  • 打赏
  • 举报
回复
windows下主要代码:
void CLCDlg::OnConnectServer()
{
// TODO: Add your control notification handler code here
createSock();
if(connect(sock,(struct sockaddr*)&serverAddr,sizeof(serverAddr)))
{
AfxMessageBox("connect error");
return ;
}
}

void CLCDlg::OnSend()
{
// TODO: Add your control notification handler code here
CString str="hello";
int len;
len=send(sock,str,sizeof(str),0);

}

DWORD CLCDlg::startScok()
{
serverAddr.sin_family=AF_INET;
serverAddr.sin_addr.s_addr=inet_addr("159.226.75.221");
serverAddr.sin_port=htons(5790);
return 1;
}

DWORD CLCDlg::createSock()
{
sock=socket(AF_INET,SOCK_STREAM,0);
if(sock==INVALID_SOCKET)
{
AfxMessageBox("Wrong");
return -1;
}
return 1;
}

void CLCDlg::OnClose()
{
closesocket(sock) ;
}
*********************************************
Linux下主要代码:
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <stdio.h>
#define SERVER_PORT 5790
main()
{
int sockfd;
int connfd;
int namelen;
int n;
int bindflag;
struct sockaddr_in my_addr;
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0)
{
fprintf(stderr,"socket error!\n");
exit(1);
}
my_addr.sin_family=AF_INET;
my_addr.sin_port=htons(SERVER_PORT);
my_addr.sin_addr.s_addr=INADDR_ANY;
bzero(&(my_addr.sin_zero),8);
bindflag=bind(sockfd,(struct sockaddr*)&my_addr,sizeof(struct sockaddr));
if(bindflag<0)
{
fprintf(stderr,"bind error!\n");
exit(2);
}
if(listen(sockfd,2)<0)
{
fprintf(stderr,"listen error!\n");
exit(3);
}
namelen=sizeof(my_addr);
while(1)
{
connfd=accept(sockfd,(struct sockaddr*)&my_addr,&namelen);
if(connfd<0)
{
fprintf(stderr,"accept error!\n");
exit(4);
}
printf("ip\n");
if((n=fork())==0)
{
char buff[1024];
close(sockfd);
n=read(connfd,buff,1024);
printf("%s\n",buff);
close(connfd);
exit(0);
}
else if(n<0)
printf("Fork Error.\n");
close(connfd);
}
}
ckc 2008-01-10
  • 打赏
  • 举报
回复
2楼说的有一定道理,有可能是编译器在细节上不一致
captain_x 2008-01-10
  • 打赏
  • 举报
回复
windows下不用cstring,直接用char试试
captain_x 2008-01-09
  • 打赏
  • 举报
回复
可能是字节对齐的问题,导致数据不一致
超龄编码人 2008-01-09
  • 打赏
  • 举报
回复
代码发上来
内容概要:本文围绕“单相逆变器闭环逆变电路PWM模型仿真研究”展开,基于Simulink平台构建单相逆变器的闭环控制系统仿真模型,重点研究PWM调制技术在逆变电路中的应用与实现。文中详细阐述了系统架构设计、电压电流双闭环控制策略的实现原理、控制器参数设计及仿真建模全过程,并通过仿真结果验证了控制方案在动态响应、稳态精度与系统稳定性方面的有效性。同时,文档还涵盖多种电力电子系统典型应用场景,如多类型短路故障仿真(中性点不接地、经小电阻接地、经消弧线圈接地等)、软开关技术、微电网能量管理、MPPT控制等,体现出较强的技术综合性和工程实践价值。; 适合人群:电气工程、自动化、电力电子与新能源等相关专业的高校本科生、研究生、科研人员,以及从事电力系统仿真、逆变器设计与新能源并网技术研发的工程技术人员。; 使用场景及目标:①掌握基于Simulink的单相逆变器闭环控制系统建模与PWM仿真方法;②深入理解双闭环控制、SPWM/SVPWM调制、系统稳定性分析等核心技术原理;③为课程设计、毕业设计、科研项目或实际工程开发提供可复用的仿真模型与技术支持; 阅读建议:建议结合文中仿真模型动手实践,重点掌握PI控制器参数整定、PWM信号生成机制与仿真结果分析方法,同时可延伸学习文档中涉及的软开关、故障仿真、微电网控制等关联技术,以拓展系统级设计能力。

4,394

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧