社区
通信技术
帖子详情
linux与windows通信
shuaiying
2008-01-09 11:15:26
在linux上用C编写循环服务器,在windows中用MFC建立客户端,相互间不能连接,客户端报告连接错误.在Linux下两者能通信,同样在windows下两者也能通信,为什么?
...全文
75
5
打赏
收藏
linux与windows通信
在linux上用C编写循环服务器,在windows中用MFC建立客户端,相互间不能连接,客户端报告连接错误.在Linux下两者能通信,同样在windows下两者也能通信,为什么?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
打赏
举报
回复
代码发上来
linux
2.6.1内核源码注释
Linux
支持多种文件系统,如EXT2、EXT3、EXT4等,以及VFAT(
Windows
兼容)和NTFS(读取支持)。文件系统包括元数据管理、i节点、文件打开/关闭、读/写操作等功能。源码中会详细解释文件系统的挂载、卸载过程以及文件...
Synapse TCP/IP Library v24一套
通信
类和函数库
Synapse支持
Windows
下的Delphi、CBuilder和
Linux
下的Kylix; 支持Winsock或基于阻塞模式的Libc通讯,支持TCP、UDP、ICMP和RAW协议; 支持ASN.1编码和解码; 支持DNS; 支持标准ISO编码(ISO-8859-x...
Java使用开源Rxtx实现串口通讯 串口开发
串口通讯,也称为串行
通信
,是指数据逐位顺序传输的方式,与并行
通信
相比,串口通讯通常需要较少的硬件资源,适合长距离
通信
且速度相对较慢。在Java中,由于标准API并不直接支持串口操作,因此开发者通常需要依赖像...
windows
主机和
linux
主机互相
通信
。
实验内容:
windows
主机和
linux
主机互相
通信
。 实验步骤: 1.设置虚拟机的联网模式 2.配置CentOS7的IP地址,通过修改配置文件完成 cd /etc/sysconfig/network-scripts ls (找到可用的网卡名为ens33) vi ifcfg...
基于Socket编程下 实现
Linux
-
Linux
、
Linux
-
Windows
udp
通信
在虚拟机下开启俩个终端,分别运行服务器和客户端程序(服务器运行在前,客户端运行在后)①客户端
Windows
_Client。②服务器
Linux
_Server。⑤接收客户端发送过来的数据。⑤接收客户端发送过来的数据。②Sockets初始...
通信技术
4,387
社区成员
28,918
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章