社区
PowerBuilder
帖子详情
如何接收tcpip发来的数据并解析?
884813
2003-04-23 09:16:30
写下这个题目我自己也搞不大明白。总之是要用PB来做了。各位给指点指点。
...全文
269
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
协议详解卷2:实现
TCPIP
协议详解卷2:实现 pdf版,有目录,完美阅读体验。 中文书名:TCP/IP详解 卷2:实现 英文书名:TCP/IP Illustrated, Volume 2: The Implementation 作者:(美) Gary R. Wright ,W. Richard Stevens 译者:陆...
利用python进行TCP通信
接收
数据
进行处理,使用队列来存放
接收
的
数据
例如,我们可以创建一个
数据
处理线程,从队列中读取
数据
并进行
数据
解析
、存储等操作。来存放
接收
到的
数据
,并使用Python的socket模块创建了一个TCP服务器套接字。当有客户端连接请求时,程序会创建一个新线程来处理...
Python网络编程 -
TCPIP
套接字编程
实战小项目:通过一个简单的项目,您将学习如何使用Python实现基本的网络通信,包括
数据
的发送和
接收
。 动手实践:课程中您将亲自编写代码,实现一个基于TCP/IP套接字的小型网络通信应用。 为什么选择本课程? 从零...
Android客户端通过TCP
接收
服务器端发送的
数据
引言 因为我确实不懂TCP通信这一块儿,最近项目中要实现客户端
接收
服务器端发送过来的
数据
(这个
数据
是int型的,范围是0~360,而且服务器端用C语言写的,每一秒发送一次,客户端只需要不断
接收
就好了),很开心的用...
C#
TCPIP
网络
数据
传输及实现
TCP/IP网络
数据
传输及实现,套接字
PowerBuilder
1,079
社区成员
66,439
社区内容
发帖
与我相关
我的任务
PowerBuilder
PowerBuilder 相关问题讨论
复制链接
扫一扫
分享
社区描述
PowerBuilder 相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章