一个关于Arm7的问题
时间:2005-07-12
来源:互联网
各位大侠,有个问题想请教一下。
最近使用Arm7(s3c44b0x)开发,库用的是uC-libc
当用下面的语句:
while(1) {
int sockfd;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
printf("create socket id = [%d]\n", sockfd);
close(sockfd);
}
这样每次可以看到都是3,这当是正常的
可是一旦在中间加入了连接语句的时候,就完了。头一次sockfd还是3,
以后每次都是0,那不是stdin吗?不知道那位大侠能帮忙解释一下。
代码是这样的:
int tcp_conn(const char *ip, int port)
{
struct sockaddr_in addr;
struct servent *pServ;
int i, sockfd= -1;
int e;
int ret = 0;
/* 首先为地址赋值 */
memset(&addr, 0x00, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
errno = 0;
if (inet_aton(ip, &addr.sin_addr) < 0) {
ret = -1;
goto lbl_atlast;
}
/* 建立套接字 */
sockfd= socket(AF_INET, SOCK_STREAM, 0);
printf("create socket [%d]\n", nSockId);
/* 连接目标地址 */
if (connect(nSockId, (struct sockaddr*)&addr,
sizeof(struct sockaddr)) < 0) {
e = errno;
close(nSockId);
ret = -2;
goto lbl_atlast;
}
ret = nSockId;
lbl_atlast:
return ret;
}
main()
{
while(1) {
int sockfd;
sockfd = tcp_conn("192.168.1.10", 3333);
printf("create socket id = [%d]\n", sockfd);
close(sockfd);
}
}
最近使用Arm7(s3c44b0x)开发,库用的是uC-libc
当用下面的语句:
while(1) {
int sockfd;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
printf("create socket id = [%d]\n", sockfd);
close(sockfd);
}
这样每次可以看到都是3,这当是正常的
可是一旦在中间加入了连接语句的时候,就完了。头一次sockfd还是3,
以后每次都是0,那不是stdin吗?不知道那位大侠能帮忙解释一下。
代码是这样的:
int tcp_conn(const char *ip, int port)
{
struct sockaddr_in addr;
struct servent *pServ;
int i, sockfd= -1;
int e;
int ret = 0;
/* 首先为地址赋值 */
memset(&addr, 0x00, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
errno = 0;
if (inet_aton(ip, &addr.sin_addr) < 0) {
ret = -1;
goto lbl_atlast;
}
/* 建立套接字 */
sockfd= socket(AF_INET, SOCK_STREAM, 0);
printf("create socket [%d]\n", nSockId);
/* 连接目标地址 */
if (connect(nSockId, (struct sockaddr*)&addr,
sizeof(struct sockaddr)) < 0) {
e = errno;
close(nSockId);
ret = -2;
goto lbl_atlast;
}
ret = nSockId;
lbl_atlast:
return ret;
}
main()
{
while(1) {
int sockfd;
sockfd = tcp_conn("192.168.1.10", 3333);
printf("create socket id = [%d]\n", sockfd);
close(sockfd);
}
}
作者: miracon 发布时间: 2005-07-12
这个问题太难了吗,还是哪里做的不对头
怎么连个说不会的都没有?
怎么连个说不会的都没有?
作者: miracon 发布时间: 2005-07-13
你是不是应该设个临时变量
让它等于sockfd
以后就对这个临时变量操作
我申明我是很菜的,别笑话我
让它等于sockfd
以后就对这个临时变量操作
我申明我是很菜的,别笑话我
作者: jun_zero 发布时间: 2005-07-18
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28