关于tcp/ip的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 sbzldlb
  • 开始时间 开始时间
S

sbzldlb

Unregistered / Unconfirmed
GUEST, unregistred user!
type
Ttcphdr=record //定义TCP首部
TCP_Sport :word; //16位源端口
TCP_Dport :word; //16位目的端口
th_seq :longword; //32位序列号
th_ack :longword; //32位确认号
th_lenres :byte; //4位首部长度/6位保留字
th_flag :char; //6位标志位
th_win :word; //16位窗口大小
th_sum :word; //16位校验和
th_urp :word; //16位紧急数据偏移量
end;

itcpSize := sizeof(tcpHdr) div sizeof(LongWord)+length(strMessage);
tcphdr.TCP_Sport:=htons(SrcPort);
tcphdr.TCP_Dport:=htons(DestPort);
tcphdr.th_seq:=3187130439;
tcphdr.th_ack:=2336409226;
tcphdr.th_lenres:=5;
tcphdr.th_flag:='0';
tcphdr.th_win:=0;
tcphdr.th_sum:=itcpSize;
tcphdr.th_urp:=0;

tcphdr这个结构里面的参数我应该怎么设置呢
 
type
Ttcphdr=record //定义TCP首部
TCP_Sport :word; //16位源端口
TCP_Dport :word; //16位目的端口
th_seq :longword; //32位序列号
th_ack :longword; //32位确认号
th_lenres :byte; //4位首部长度/6位保留字
th_flag :char; //6位标志位
th_win :word; //16位窗口大小
th_sum :word; //16位校验和
th_urp :word; //16位紧急数据偏移量
end;

itcpSize := sizeof(tcpHdr) div sizeof(LongWord)+length(strMessage);
tcphdr.TCP_Sport:=htons(SrcPort);
tcphdr.TCP_Dport:=htons(DestPort);
tcphdr.th_seq:=3187130439;
tcphdr.th_ack:=2336409226;
tcphdr.th_lenres:=5;
tcphdr.th_flag:='0';
tcphdr.th_win:=0;
tcphdr.th_sum:=itcpSize;
tcphdr.th_urp:=0;

tcphdr这个结构里面的参数我应该怎么设置呢
 
你要做什么?
TCP编程也可以这么复杂?
 
找本TCP/IP详解看看就明白了。
 
这个:
tcphdr.TCP_Sport:=htons(SrcPort);
tcphdr.TCP_Dport:=htons(DestPort);
tcphdr.th_seq:=3187130439;
tcphdr.th_ack:=2336409226;
tcphdr.th_lenres:=5;
tcphdr.th_flag:='0';
tcphdr.th_win:=0;
tcphdr.th_sum:=itcpSize;
tcphdr.th_urp:=0;
你这是设置了吗????
 
delphi和winpcap的应用不知道大家有没有开发经验啊?
winpcap是一个非常强有力的网络底层封装DLL。

VC利用它可以很好的编写操作ARP数据报的程序,delphi好象还没有例子。
 
学习下,你自己都写了注释了……
 
建立 RAWSOCKET什么都可以干
 
楼主说的是串口,你们却给人回答TCP/IP
如果不连设备是读不出来的,除非你把2,3口接在一起,这样就可以自发自收。

这里就有串口的组件
http://www.anylib.com
 
串口要有設備,或者你自己連接線路也可以測試用。
下面是連接方法:
9針-9針 25針-25針 9針-25針
2----------3 3----------2 2----------2
3----------2 2----------3 3----------3
5----------5 7----------7 5----------7
 
不好意思,因为开始不是这个标题,但是别人没有回答出来,所以我就换标题了

就是说如果没有设备,就算自己往里面写数据,也是读不出的
还有就是组建我有了,但是我想自己写一下,这样认识就会更深

但是我现在没设备,启不是就看不到效果了
 
可以,把2-3脚相连即可。
 
那2根是2-3脚呢
我不是很清楚
 
自己买个公的RS-232插头,然后用条线将2-3连接起来,然后插上去就可以啦
脚号在插头上面有标
 
公的RS-232
母的行不
 
rsina, 时间:2005-9-9 12:57:01, ID:3198270
delphi和winpcap的应用不知道大家有没有开发经验啊?
winpcap是一个非常强有力的网络底层封装DLL。
VC利用它可以很好的编写操作ARP数据报的程序,delphi好象还没有例子。
==================================
太多了,比如说我就用它做了个抓IP数据包,网上也有代码的。


bbscom, 时间:2005-12-31 11:02:02, ID:3314729
串口要有設備,或者你自己連接線路也可以測試用。
下面是連接方法:
9針-9針 25針-25針 9針-25針
2----------3 3----------2 2----------2
3----------2 2----------3 3----------3
5----------5 7----------7 5----------7
==================================
你不如这么解释:标准RS232 2收3发5接地。你把23反接是为了在一台机器上收发如果接设备不一定。

sbzldlb, 时间:2005-12-31 11:27:41, ID:3314770
公的RS-232母的行不
===================================
一样,用公口或母口都没区别。

sbzldlb, 时间:2005-12-31 11:00:33, ID:3314731
不好意思,因为开始不是这个标题,但是别人没有回答出来,所以我就换标题了

就是说如果没有设备,就算自己往里面写数据,也是读不出的
还有就是组建我有了,但是我想自己写一下,这样认识就会更深
但是我现在没设备,启不是就看不到效果了
=================
如果你清楚协议,建议用bbscom的办法。做根23反接的线。两头分别插你的计算机的两个串口你的程序用串口1,再去下个串口调试工具用串口2。OK,开始调试吧。
 
2,3脚在有5个脚的那一排里,你试试不就出来了
 
后退
顶部