联邦总部
Would you like to react to this message? Create an account in a few clicks or log in to continue.
最新主题
» 时间不见了
软件编程方面的问题,请教一下高手。 Empty周五 24 七月 - 14:02 由 TehDDA

» 好好学习贴
软件编程方面的问题,请教一下高手。 Empty周一 9 三月 - 23:00 由 Yangrousi

» [2014年7月]第二十二期水楼
软件编程方面的问题,请教一下高手。 Empty周六 20 九月 - 17:22 由 Yangrousi

» 世界杯吐槽帖
软件编程方面的问题,请教一下高手。 Empty周五 4 七月 - 14:15 由 Cathiec

» [2014年6月]第二十一期水楼
软件编程方面的问题,请教一下高手。 Empty周四 3 七月 - 21:31 由 大菊花

» [2014年5月]第二十期水楼
软件编程方面的问题,请教一下高手。 Empty周五 23 五月 - 7:43 由 Yangrousi

» C和C++集中交流帖
软件编程方面的问题,请教一下高手。 Empty周三 7 五月 - 15:44 由 Cathiec

» [2014年4月]第十九期水楼
软件编程方面的问题,请教一下高手。 Empty周日 27 四月 - 12:16 由 Yangrousi

» 【本版特典】故事接龙(规则说明及讨论)
软件编程方面的问题,请教一下高手。 Empty周日 27 四月 - 12:00 由 Yangrousi

» [2014年3月]第十八期水楼
软件编程方面的问题,请教一下高手。 Empty周三 2 四月 - 9:35 由 Cathiec

最优秀的发帖人
Yangrousi (3703)
软件编程方面的问题,请教一下高手。 Vote_lcap软件编程方面的问题,请教一下高手。 Voting_bar软件编程方面的问题,请教一下高手。 Vote_rcap 
Cathiec (2165)
软件编程方面的问题,请教一下高手。 Vote_lcap软件编程方面的问题,请教一下高手。 Voting_bar软件编程方面的问题,请教一下高手。 Vote_rcap 
Rousiyang (1680)
软件编程方面的问题,请教一下高手。 Vote_lcap软件编程方面的问题,请教一下高手。 Voting_bar软件编程方面的问题,请教一下高手。 Vote_rcap 
Kramer (1334)
软件编程方面的问题,请教一下高手。 Vote_lcap软件编程方面的问题,请教一下高手。 Voting_bar软件编程方面的问题,请教一下高手。 Vote_rcap 
TehDDA (1131)
软件编程方面的问题,请教一下高手。 Vote_lcap软件编程方面的问题,请教一下高手。 Voting_bar软件编程方面的问题,请教一下高手。 Vote_rcap 
云朵 (712)
软件编程方面的问题,请教一下高手。 Vote_lcap软件编程方面的问题,请教一下高手。 Voting_bar软件编程方面的问题,请教一下高手。 Vote_rcap 
avacyn (401)
软件编程方面的问题,请教一下高手。 Vote_lcap软件编程方面的问题,请教一下高手。 Voting_bar软件编程方面的问题,请教一下高手。 Vote_rcap 
大菊花 (296)
软件编程方面的问题,请教一下高手。 Vote_lcap软件编程方面的问题,请教一下高手。 Voting_bar软件编程方面的问题,请教一下高手。 Vote_rcap 
xintiaoboy (273)
软件编程方面的问题,请教一下高手。 Vote_lcap软件编程方面的问题,请教一下高手。 Voting_bar软件编程方面的问题,请教一下高手。 Vote_rcap 
Cryingclown (254)
软件编程方面的问题,请教一下高手。 Vote_lcap软件编程方面的问题,请教一下高手。 Voting_bar软件编程方面的问题,请教一下高手。 Vote_rcap 

统计
论坛共有46位注册会员
最新注册的会员是 KATEHOLIC

我们的会员们总共发布了12921个帖子 在220个主题中
登录

找回我的密码


软件编程方面的问题,请教一下高手。

3 posters

向下

软件编程方面的问题,请教一下高手。 Empty 软件编程方面的问题,请教一下高手。

帖子 由 colorjack 周五 15 十一月 - 19:17

由于自身专业在软件编程方面研究不够深入,所以遇到疑问,求指导。
谢谢。

现在在研究一个基于UDP的IPv6的数据交互程序。
简单介绍下:C语言写,sender发送一个文件,receiver接受信息,go-back-n窗口滑动协议。

sender这一方,main函数头
int main(int argc,char * argv[])
{
   unsigned short port = 9000;

   char fn[100];
   printf("Input the filename: ");
   gets(fn);

   fp = fopen(fn,"r");
   if(fp == NULL)
   {
       printf("Can't find the file.\n");
       return 0;
   }
   
   signal(SIGTERM, exit_handler);
   signal(SIGINT, exit_handler);
   
   sockaddr_len = sizeof(struct sockaddr_in6);

   int port;
   scanf("%s", &port);
     
   char ip[100];
   gets(ip);

   /* creat UDP SOCKET*/
   udp_fd  = socket(PF_INET6, SOCK_DGRAM, 0);
   if(udp_fd == -1)
   {
       perror("socket");
   }

   /* connection */
   memset((void *)&server_addr, 0, sizeof(server_addr));

   server_addr.sin6_family = AF_INET6;
   server_addr.sin6_port = htons(port);

   inet_pton(AF_INET6, ip, (void *)&(server_addr.sin6_addr));
   
   printf("Target receiver : %s:%d\n", ip, port);

我们负责人是软件工程专业的,他表示对这个程序头很不满,要我们重新做,
(负责人还说printf scanf什么的函数不要用,说工业运用上标准流不一样,我不明白什么意思)
然后负责人说下个星期派人过来教我们。
并且这程序在linux下执行会出错,windows下没有问题,运行的很好,不明白负责人为什么那么反感。
总之负责人很生气,我也很郁闷,不知道哪里不好,能不能指点下。

谢谢了


由colorjack于周五 15 十一月 - 23:14进行了最后一次编辑,总共编辑了1次

colorjack
论坛普通会员
论坛普通会员

帖子数 : 224
注册日期 : 12-10-31

返回页首 向下

软件编程方面的问题,请教一下高手。 Empty 回复: 软件编程方面的问题,请教一下高手。

帖子 由 Yangrousi 周五 15 十一月 - 22:33

小菊花快来 反正我是不懂的 看到协议就头都大了
Yangrousi
Yangrousi
论坛超级会员
论坛超级会员

帖子数 : 3703
注册日期 : 12-10-22

返回页首 向下

软件编程方面的问题,请教一下高手。 Empty 回复: 软件编程方面的问题,请教一下高手。

帖子 由 Cathiec 周五 15 十一月 - 23:17

int main(int argc,char * argv[])
//argv[1] -> filename
//argv[2] -> port number(9000 by default)
//argv[3] -> ip(::1 by default)
{
unsigned short port = 9000;
unsigned char ip[512] = "::1";

if(argc > 1)
fp = fopen(argv[1],"rt");
if(fp == NULL)
{
printf("Can't find the file.\n");
return 1;
}

signal(SIGTERM, exit_handler);
signal(SIGINT, exit_handler);

sockaddr_len = sizeof(struct sockaddr_in6);

if(argc > 2)
port = (unsigned short)atoi(argv[2]);

if(argc > 3)
strncpy(ip, argv[3], sizeof(ip) - 1);

/* creat UDP SOCKET*/
udp_fd = socket(PF_INET6, SOCK_DGRAM, 0);
if(udp_fd == -1)
{
perror("socket");
}

/* connection */
memset((void *)&server_addr, 0, sizeof(server_addr));

server_addr.sin6_family = AF_INET6;
server_addr.sin6_port = htons(port);

inet_pton(AF_INET6, ip, (void *)&(server_addr.sin6_addr));

fprintf(stdout, "Target receiver : %s:%d\n", ip, port);

分析一下:
1。数据交互中,像文件名,IP地址这类的东西不要手动输入,全部都作为main的参数传入,否则兼容性太差,平台支持的能力也很差。
2.printf不要用,用fprintf给参数stdout。
3.我就按着你代码的模式直接改写的,你的代码移植性太差,注释太少,函数分类也不够好。
4.ipv6的协议下,你的ip地址100是不行的,用unsigned char,大小512.

暂时就想到这么多
Cathiec
Cathiec
救世主
救世主

帖子数 : 2165
注册日期 : 12-10-22

返回页首 向下

软件编程方面的问题,请教一下高手。 Empty 回复: 软件编程方面的问题,请教一下高手。

帖子 由 colorjack 周五 15 十一月 - 23:26

啊,非常感谢!不愧是专业人士啊。。。
unsigned char的优势在哪里?
我一般就用char了,但是别人很多专业人士都用unsigned int啊unsigned char啊。。。

colorjack
论坛普通会员
论坛普通会员

帖子数 : 224
注册日期 : 12-10-31

返回页首 向下

软件编程方面的问题,请教一下高手。 Empty 回复: 软件编程方面的问题,请教一下高手。

帖子 由 Cathiec 周五 15 十一月 - 23:32

取消符号位,省去判断时间,时间方面会有优势。
Cathiec
Cathiec
救世主
救世主

帖子数 : 2165
注册日期 : 12-10-22

返回页首 向下

软件编程方面的问题,请教一下高手。 Empty 回复: 软件编程方面的问题,请教一下高手。

帖子 由 colorjack 周五 15 十一月 - 23:41

谢谢你了,我这两天再去研究下。
有结果了在论坛上发给你,求指导!

colorjack
论坛普通会员
论坛普通会员

帖子数 : 224
注册日期 : 12-10-31

返回页首 向下

软件编程方面的问题,请教一下高手。 Empty 回复: 软件编程方面的问题,请教一下高手。

帖子 由 Cathiec 周五 15 十一月 - 23:42

colorjack 写道:谢谢你了,我这两天再去研究下。
有结果了在论坛上发给你,求指导!
交流交流,别客气。。。
我的水平还没资格指导你。。。
Cathiec
Cathiec
救世主
救世主

帖子数 : 2165
注册日期 : 12-10-22

返回页首 向下

软件编程方面的问题,请教一下高手。 Empty 回复: 软件编程方面的问题,请教一下高手。

帖子 由 Yangrousi 周三 20 十一月 - 23:05

colorjack是不喝酒不上论坛啊
Yangrousi
Yangrousi
论坛超级会员
论坛超级会员

帖子数 : 3703
注册日期 : 12-10-22

返回页首 向下

软件编程方面的问题,请教一下高手。 Empty 回复: 软件编程方面的问题,请教一下高手。

帖子 由 colorjack 周日 24 十一月 - 19:57

Yangrousi 写道:colorjack是不喝酒不上论坛啊
偶尔上来看看。
看看你们有什么经验可以分享的

colorjack
论坛普通会员
论坛普通会员

帖子数 : 224
注册日期 : 12-10-31

返回页首 向下

软件编程方面的问题,请教一下高手。 Empty 回复: 软件编程方面的问题,请教一下高手。

帖子 由 Yangrousi 周日 24 十一月 - 20:06

colorjack 写道:
Yangrousi 写道:colorjack是不喝酒不上论坛啊
偶尔上来看看。
看看你们有什么经验可以分享的
有空来指导我们..
Yangrousi
Yangrousi
论坛超级会员
论坛超级会员

帖子数 : 3703
注册日期 : 12-10-22

返回页首 向下

返回页首


 
您在这个论坛的权限:
不能在这个论坛回复主题