以前的例子中未能接觸到socket協議,但這也是一個較爲多用的協議,也是必須要學習掌握的。
此次例子採用本地及時通訊軟件飛秋來做學習。
通過我下面錄製的腳本來說明:
/*********************************************************************
* Created by Mercury Interactive Windows Sockets Recorder
*
* Created on: Tue Jul 07 10:44:31
*********************************************************************/
#include "lrs.h"
Action()
{
int i;
char *ActualBuffer;//定義字符指針
int NumberOfBytes;//定義int型變量保存長度
//這是第一步initializes a socket
lrs_create_socket("socket1", "UDP", "LocalHost=2425", LrsLastArg);
//我這裏是讓腳本連續運行多次
for(i=0;i<8;i++)
{
lr_start_transaction("send");
lr_think_time(7);
//這裏是第二步,通過建立的socket1將buf1中的數據發送給遠端MM-7QL3Z0JYUJN6用戶,端口2425
lrs_send("socket1", "buf1", "TargetSocket=MM-7QL3Z0JYUJN6:2425", LrsLastArg);
//取得緩衝區數據
lrs_get_buffer_by_name("buf1", &ActualBuffer, &NumberOfBytes);
//輸出緩衝區數據大小
lr_output_message("The buffer's size is: %d/n", NumberOfBytes);
//從buf2中接收返回的數據
lrs_receive("socket1", "buf2", LrsLastArg);
//取得緩衝區數據
lrs_get_buffer_by_name("buf2", &ActualBuffer, &NumberOfBytes);
//輸出緩衝區數據大小
lr_output_message("The buffer's size is: %d/n", NumberOfBytes);
lr_end_transaction("send", LR_AUTO);
}
//第三步關閉釋放socket連接
lrs_close_socket("socket1");
return 0;
}
下面我們來看buf中發送的數據,數據都會保存在data.ws文件中:
發送的明文內容:lihongtao,但是可以看出,這裏顯示的都是密文,應該是按格式轉換了編碼。還不太清楚,具體是一個怎麼的組成格式。
;WSRData 2 1
send buf1 371
"1_lbt4_0#128#0016D3B50AA3#0#0#0:1246963533:Administrator:LND7DEMO:4194592:"
"20002:21b56c1d54100180afb94c84050a7f371f1010472b26092920ea2629699a74b2cbfe"
"242eb74b16e66e6fe90c4610<a href="http://51CTO提醒您,請勿濫發廣告!/ceshi/ceshijishu/rjcsgj/rational/%3CSTRONG%3E%3CA%20href=" http:="" 51CTO提醒您,請勿濫發廣告!="" ceshi="" ceshijishu="" rjcsgj="" rational="" clearcase="" "="" target="_blank">clearcase/" target="_blank" >ccb110ce400851e68e16c51470a91120dfcdf324444e647444"
"864e823810539413ed0b6b29a8ed46d2f95839047dbe4555b141afb80f5cf9c06e8af0aa90"
"afe852dbfedab05ee91932a95f6faef8207907fb:5f4c457c52738bfdfaf28c9303d292c6"
"\x00\x00"
recv buf2 87
"1_lbt4_0#131#001109AB80C9#0#0#0:1246475216:Administrator:MM-7QL3Z0JYUJN6:3"
"3:1246963533"
"\x00"
-1