社区
PowerBuilder
帖子详情
如何接收tcpip发来的数据并解析?
884813
2003-04-23 09:16:30
写下这个题目我自己也搞不大明白。总之是要用PB来做了。各位给指点指点。
...全文
275
18
打赏
收藏
如何接收tcpip发来的数据并解析?
写下这个题目我自己也搞不大明白。总之是要用PB来做了。各位给指点指点。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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好像已经废除了这些东西。
socket服务和客户端测试XML文件
接收
和发送
c#写的用于测试socket按固定格式和协议发送xml文件并
解析
和
接收
TCPIP
详解 卷1协议
第1 章概述 第2 章链路层 第3 章IP :网际协议 第4 章ARP :地址
解析
协议 第5 章RARP :逆地址
解析
协议 第6 章ICMP :Internet 控制报文协议 第7 章Ping 程序 第8 章Traceroute 程序 第9 章IP 选路 第10 章动态选路协议 第11 章UDP :用户
数据
报协议 第12 章广播和多播 第13 章IGMP :Internet 组管理协议 第14 章DNS :域名系统 第15 章TFTP :简单文件传送协议 第16 章BOOTP :引导程序协议 第17 章TCP :传输控制协议 第18 章TCP 连接的建立与终止 第19 章TCP 的交互
数据
流
TCP 发包工具(windows)
TCP发包工具,客户端windows开发的,可以进行同步短连接发包,方便调试通信报文
基于labviewTCP双向通信简单demo
实现tcp服务器和客户端双向收发
使用 Sniffer 工具进行
TCPIP
分析
使用 Sniffer 工具进行
TCPIP
分析
PowerBuilder
1,108
社区成员
66,453
社区内容
发帖
与我相关
我的任务
PowerBuilder
PowerBuilder 相关问题讨论
复制链接
扫一扫
分享
社区描述
PowerBuilder 相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章