51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2588|回复: 5
打印 上一主题 下一主题

[求助] 如何把buf里收到的端口号作为action里的UDP连接send目标?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-7-17 17:12:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
socket脚本,客户端先用tcp与服务器连接,有服务器处获得一随机端口号,然后再用udp与服务器的这一随机端口号连接(其实是realplayer和server)。怎么才能把分别在buf和脚本里的两个东西联系起来啊。设关联吗?设完之后,并不能影响action.c文件啊,恳请高手指教。

[ 本帖最后由 basler 于 2006-7-18 10:48 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2006-7-18 09:30:48 | 只看该作者
急需指教,请前辈教教我,万分感谢
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2006-7-18 09:55:13 | 只看该作者
例子:
/****************************************************************

*****

* Created by Mercury Interactive Windows Sockets Recorder

* Created on: Sat Apr 15 21:55:23

*****************************************************************

****/

#include "lrs.h"

Actions ()

{

     char *NewPort;

     char *UserBuf;

     char Buf[255];

     char Tmp[255];

     int iVal, iHighVal, iLowVal;

     lr_think_time(12);

     lrs_send("socket2", "buf8", LrsLastArg);

     lrs_receive("socket2", "buf9", LrsLastArg);

     lrs_create_socket("socket3", "TCP", "LocalHost=0",
               "Backlog=1", LrsLastArg);

     /* 在socket3中得到本地主机的端口 */

     NewPort = lrs_get_socket_attrib("socket3", LOCAL_PORT );

     lr_output_message("Local port %s", NewPort);

     /* Parse NewPort to low and high order and save to 'PortNum'

parameter */

     iVal = atoi (NewPort);

     iLowVal = (WORD)(iVal) & 0xFF;

     iHighVal = (WORD)(((DWORD)(iVal) >> 8) & 0xFF);

     strcpy (Buf, itoa( iHighVal, Tmp, 10 ));

     strcat (Buf, ",");

     strcat (Buf, _itoa( iLowVal, Tmp, 10 ));

     /* Save the PortNum to buf 10.

     * send buf10

     * "PORT 199,203,74,132,<PortNum>\r\n"

     * The first 4 numbers are the IP and the fifth argument must

be
     * replaced with the new parameter.*/

     lr_save_string(Buf, "PortNum");

     /* Get the content of Buf10 and print to output for debug */

     lrs_get_static_buffer("socket2", "buf10", 0, -1, NULL);

     UserBuf = lrs_get_user_buffer("socket2");

     lr_output_message("Buf10 Content %s", UserBuf);

     lrs_send("socket2", "buf10", LrsLastArg);

     lrs_receive("socket2", "buf11", LrsLastArg);

     lrs_send("socket2", "buf12", LrsLastArg);

     lrs_receive("socket2", "buf13", LrsLastArg);

     lrs_set_accept_timeout(30,0);

     lrs_accept_connection("socket3", "socket4");

     lrs_close_socket("socket3");

     lrs_receive("socket4", "buf14", LrsLastArg);

     lrs_close_socket("socket4");

     lrs_receive("socket2", "buf15", LrsLastArg);

     return 0;

}

[ 本帖最后由 Zee 于 2006-7-18 09:58 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2006-7-18 10:06:42 | 只看该作者
多谢版主了,帮大忙了
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2006-7-18 10:37:57 | 只看该作者
lrs_get_socket_attrib得到的端口应该是从作为参数的socket处得到的。
我的意思是,怎么把一个soket里receive到的buf的值,作为另一个UDPsoket,send里的参数

buf5里receive到的

“..client_port=6970;server_port=31558\r\n\r\n”


发送udp的soket

lrs_create_socket("socket1", "UDP", "LocalHost=6970", LrsLastArg);
lrs_send("socket1", "buf6", "TargetSocket=172.20.23.20:31558", LrsLastArg);
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-7-18 10:53:44 | 只看该作者
用lr_eval_string试试。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-16 02:36 , Processed in 0.074128 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表