社区
PowerBuilder
帖子详情
如何接收tcpip发来的数据并解析?
884813
2003-04-23 09:16:30
写下这个题目我自己也搞不大明白。总之是要用PB来做了。各位给指点指点。
...全文
300
18
打赏
收藏
如何接收tcpip发来的数据并解析?
写下这个题目我自己也搞不大明白。总之是要用PB来做了。各位给指点指点。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
884813
2003-04-28
打赏
举报
回复
谢谢参与讨论的朋友。
这里再问一下,有无了解“103归约”的朋友?
884813
2003-04-28
打赏
举报
回复
更正一下,是“103规约”。
online
2003-04-25
打赏
举报
回复
这样的话,你只能用c来做了
跨平台。
有区别,只是底层的函数不一样了
pb7中有connection,transport对象
884813
2003-04-25
打赏
举报
回复
看了些例子,都是基于WINDOWS平台的。现在的问题是,数据从UNIX主机发过来,在WINDOWS平台上接收和解析,这跟客户、服务器都在WINDOWS平台上的连接有区别吗?
884813
2003-04-25
打赏
举报
回复
看看还能不能发言!
884813
2003-04-24
打赏
举报
回复
自己顶一下!
884813
2003-04-23
打赏
举报
回复
谢谢!
killerdanny
2003-04-23
打赏
举报
回复
http://www.cic.tsinghua.edu.cn/sys/book2/ws2chpc12z.htm
你先看看这个!
我在做SERVER
和我以前的CLIENT可以连接
但是发数据还有问题!
884813
2003-04-23
打赏
举报
回复
有能收发的例子最好了!
killerdanny
2003-04-23
打赏
举报
回复
hehe!
你是不是要一个能收发的例子!
884813
2003-04-23
打赏
举报
回复
据说WINSOCK.pbl有不少错误,有用过WINSOCK.pbl的兄弟吗?
rick1126
2003-04-23
打赏
举报
回复
要不你们使用微软的winsock控件, 我还是同意上面的仁兄使用VC写一个DLL
884813
2003-04-23
打赏
举报
回复
这里可以下。
http://lzg.myrice.com/download/file/powersock.zip
884813
2003-04-23
打赏
举报
回复
WINSOCK.pbl我现在也没有,来找找先。
killerdanny
2003-04-23
打赏
举报
回复
应该和上面一样的!
先创建SOCKET,然后BAND,然后LISTEN
然后ACCEPT。
你那里还有WINSOCK.pbl发给我一个,我做一个试试!
我这些都是标准C在LINUX下用的!
884813
2003-04-23
打赏
举报
回复
C自不不必说了。可是要在PB环境下实现,DANNY知道怎么做吗?
killerdanny
2003-04-23
打赏
举报
回复
tcp是上层协议,IP是底层协议!
IP协议的上层有UDP和TCP协议!
TCP协议是面向连接,而UDP是面向非连接!
呵呵!
目前我在做这些东西!
不过是用C
//zw_server.c
#include <stdio.h>
#include <ctype.h>
#include <errno.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/file.h>
#include <sys/ioctl.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <netdb.h>
#include <unistd.h>
#include <sys/wait.h>
//#include <fcnl.h>
#define MYPORT 5000
#define BACKLOG 5
void sigchild_handler(int);
int main(){
int sockfd,new_fd;
struct sockaddr_in srvaddr;
struct sockaddr_in cliaddr;
struct sigaction act;
char buff[100];
int sin_size,numbytes;
int pid;
if((sockfd = socket(AF_INET,SOCK_STREAM,0))== -1){
perror("SOCKET CREATE ERROR");
exit(1);
}
bzero(&srvaddr,sizeof(srvaddr));
srvaddr.sin_family = AF_INET;
srvaddr.sin_port =htons(MYPORT) ;
if (bind(sockfd,(struct sockaddr *)&srvaddr,sizeof (struct sockaddr)) == -1) {
perror("bind error");
exit(1);
}
if (listen(sockfd ,BACKLOG) == -1){
perror("listen error");
exit(1);
}
act.sa_handler = sigchild_handler;
sigemptyset(&act.sa_mask);
//for(;;){
sin_size = sizeof(struct sockaddr_in);
new_fd= accept(sockfd,(struct sockaddr *)&cliaddr,&sin_size);
//if (new_fd < 0 && errno == EINTR)
//continue;
//printf("server :get connect from %s \n",inet_ntoa(cliaddr.sin_addr));
//strcpy(buff,"this is an example!\n");
//if (send(new_fd , buff,sizeof(buff),0) == -1)
//perror("WRITE error");
//close(new_fd);
if ((pid = fork())==0){
printf("in child process\n");
if (fork() == 0){
if ((numbytes = recv(new_fd,buff,strlen(buff),0))<0){
perror("recv:");
exit(1);}
printf("%s",buff);
if (send(new_fd,buff,strlen(buff),0)<0)
perror("SEND:");
close(new_fd);
exit(0);
}
exit(0);
}
//}
close(sockfd);
}
void sigchild_handler(int sig)
{
pid_t pid;
int status;
for (;(pid = waitpid(-1,&status,WNOHANG))> 0; ){
printf("child%d died :%d\n",WEXITSTATUS(status));
}
}
//zw_client.c
#include <stdio.h>
#include <ctype.h>
#include <errno.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/file.h>
#include <sys/ioctl.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <netdb.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<unistd.h>
#define MYPORT 5000
#define MAX_SEND_DATA 1024
#define BACKLOG 5
int main(int argc,char *argv[]){
int sockfd,nbytes,len;
char buf[1024];
char buff_send[MAX_SEND_DATA];
struct hostent *he;
struct sockaddr_in srvaddr;
if (argc !=3 ){
perror("host home \n");
exit(1);
}
if ((he = gethostbyname(argv[1]) )== NULL){
perror("hostname");
exit(1);
}
if((sockfd = socket(AF_INET,SOCK_STREAM,0))== -1){
perror("SOCKET CREATE ERROR");
exit(1);
}
bzero(&srvaddr,sizeof(srvaddr));
srvaddr.sin_family = AF_INET;
srvaddr.sin_port =htons(MYPORT) ;
srvaddr.sin_addr = *((struct in_addr *)he->h_addr);
if (connect(sockfd,(struct sockaddr *)&srvaddr,sizeof (struct sockaddr)) == -1) {
perror("connect error");
exit(1);
}
while(1){
bzero(buff_send,sizeof(buff_send));
len=read(STDIN_FILENO,buff_send,sizeof(buff_send));
//strcpy(buff_send, argv[2]);
if (send(sockfd,buff_send,strlen(buff_send)+1,0)< 0){
perror("send");
exit(1);
}
//for(;;){
memset(buf,0,sizeof(buf));
if ((nbytes = recv(sockfd,buf,sizeof(buf),0)) == -1){
perror(" rec error");
exit(1);
}//}
printf("read:%s",buf);
}
close(sockfd);
}
884813
2003-04-23
打赏
举报
回复
初步的需求就是监听UNIX主机的某个端口,实时把收到的数据写入本地数据库。我还记得在用PB7的时候做所谓的“三层”有listen()等相关的函数,PB8好像已经废除了这些东西。
tcpip
上行
数据
包
接收
机制
本文分析了基于lwIP协议栈在Linux系统中的
数据
处理机制。主要探讨了三种
数据
包
接收
方式:1) 驱动
接收
数据
后传递给网络层;2) 内部应用发送
数据
至内部网卡;3) 标记为组播回环的组播
数据
包。重点
解析
了内部处理流程,包括netif_loop_output函数通过pbuf内存分配和
数据
拷贝,以及netif_poll函数调用ip_input进入协议栈的过程。文章还提出了两个关键问题:为什么上行
数据
需要通过
tcpip
线程处理(保证同步性),以及下行
数据
的处理差异。最后预告了未来将分析mbox源码实现。
【LWIP】
tcpip
_input函数
解析
(协议栈入口)
索引: (*input)() ->
tcpip
_input() -> ethernet_input() -> ip_input() 调用流程: 当网卡收到
数据
后,调用
数据
帧
接收
函数进行
数据
帧的
接收
,最后通过(*input)()函数传至协议栈(实际是netif->input,有一层封装)。 在添加网络接口时将netif->input()指向
tcpip
_input函数,即:网络协议栈入
图解AUTOSAR_CP_
TcpIp
用逻辑图让晦涩艰深的AUTOSAR通俗易懂~AUTOSAR
TcpIp
模块是AUTOSAR通信栈中的核心组件,负责实现标准TCP/IP协议栈功能,为上层应用提供网络通信服务。该模块位于AUTOSAR通信栈的中间层,连接上层的Socket适配器(SoAd)和下层的以太网接口(EthIf),实现了OSI模型中的传输层和网络层功能。
TcpIp
模块为汽车电子控制单元(ECU)提供了标准化的网络通信能力,使ECU能够通过以太网与其他ECU或外部设备进行
数据
交换,支持诊断、软件更新、远程监控等多种应用场景。
【AUTOSAR以太网】
TcpIp
简介
TcpIp
实现以太网通信服务的网络层和传输层协议。
TcpIp
模块与 AUTOSAR 软件架构中其他模块之间的关系如下所示:从图中可以看出,
TcpIp
内部包含多功能子模块,所有模块组合起来实现了
TcpIp
协议簇的主要内容。
TcpIp
模块与其它 AUTOSAR 软件模块主要通过接口调用来实现
数据
发送,通过回调函数实现
数据
接收
和事件通知。
TcpIp
模块主要与四个模块之间存在接口交互。底层模块是 EthIf, 为
TcpIp
提供以太网帧的收发服务。
TCPIP
数据
包格式
解析
目录 TCP/IP
数据
包格式
解析
TCP/IP
数据
包格式
解析
图:1548730114321 图中括号中的数字代表的是当前域所占的空间大小,单位是bit位。 黄色的是
数据
链路层的头部,一共14字节 绿色的部分是IP头部,一般是20字节 紫色部分是TCP头部,一般是...
PowerBuilder
1,111
社区成员
66,454
社区内容
发帖
与我相关
我的任务
PowerBuilder
PowerBuilder 相关问题讨论
复制链接
扫一扫
分享
社区描述
PowerBuilder 相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章