socket.BeginReceive(buf, 0, len_receive_buf, SocketFlags.None, new AsyncCallback(CallReceive), this);
/// <summary>
/// 根据数据包内容设置各字段
/// </summary>
/// <param name="buf"></param>
public void SetArgs(byte[] buf)
{
if( buf == null )
{
return;
} string tempReceiveString = BitConverter.ToString( buf ); m_PackageLength = Convert.ToInt32( tempReceiveString.Substring(6, 2), 16 ) * 16 * 16
+ Convert.ToInt32( tempReceiveString.Substring(9, 2), 16 );
string receiveString = tempReceiveString.Substring(0, m_PackageLength * 3 - 1);
m_IPHeaderLength = Convert.ToInt32( receiveString.Substring(1, 1), 16 ) * 4;
m_IPHeaderContent = receiveString.Substring( 0, m_IPHeaderLength * 3 - 1 ); m_IPVersion = m_IPHeaderContent.Substring( 0, 1 );
string protocol = m_IPHeaderContent.Substring(27, 2);
switch(protocol)
{
case "01":
m_Protocol = "ICMP";
break;
case "02":
m_Protocol = "IGMP";
break;
case "06":
m_Protocol = "TCP";
break;
case "11":
m_Protocol = "UDP";
break;
default:
m_Protocol = "OTHER";
break;
} string originationIPAddress = m_IPHeaderContent.Substring( 36, 11 );
m_OriginationIPAddress = getIPAddress( originationIPAddress ); string destinationIPAddress = m_IPHeaderContent.Substring( 48, 11 );
m_DestinationIPAddress = getIPAddress( destinationIPAddress ); m_MessageLength = m_PackageLength - m_IPHeaderLength;
m_MessageContent = receiveString.Substring( m_IPHeaderLength * 3 );
try // 这两个字段没用到,但读出来的TCPHeaderLength有可能为空,之后读内容就会因为长度为-1而报错。具体原因待查
{
m_TCPHeaderLength = Convert.ToInt32( m_MessageContent.Substring(36, 1), 16 ) * 4;
m_TCPHeaderContent = m_MessageContent.Substring( 0, m_TCPHeaderLength * 3 - 1 );
}
catch
{
} m_OriginationPort = ( Convert.ToUInt32( m_MessageContent.Substring(0, 2), 16 ) * 16 * 16
+ Convert.ToUInt32( m_MessageContent.Substring(3, 2), 16 ) ).ToString();
m_DestinationPort = ( Convert.ToUInt32( m_MessageContent.Substring(6, 2), 16 ) * 16 * 16
+ Convert.ToUInt32( m_MessageContent.Substring(9, 2), 16 ) ).ToString();
}我想从socket中取到URL地址,不知道buf里有没有,目前能取到ip地址等,急需取到url地址,谢谢
解决方案 »
- C# 在Panel中播放视频过程中,点击该视频时如何弹出一个菜单?
- 大牛们指教一下 C# IList<T>的类型能是一个list吗??
- 在APS.NET 中向oracle 数据库插入数据问题
- DateTimePicker绑定可空DateTime类型
- 非常急,使用OpenNETCF.Net的ConnectToPreferredNetwork方法连接wifi成功,但是一段时间后自动关闭
- C#拆箱问题
- 数据绑定,结束编辑问题。
- asp.net(C#)项目经理 应该具备什么素质
- 那位大侠有Microsoft BizTalk 2000 下载地址,请提示
- 自己写程序打开sql2000数据库,怎么写?不用DataSet,请指点
- C# 图片排版问题 winform 控件拖动 不重叠
- C# 在vs2008里 treeview 保存 和读取 txt或者xml 过程的全代码 还有就是前进 后退 功能
大侠,能否多说一些,万分感谢,困扰我好久了
-- 源IP: 192.168.20.148
-- 源端口号: 14839
-- 目标IP: 60.8.63.90
-- 目标端口号:80
-- 协议类型: TCP
-- 数据包长: 64
-- 包头长度: 20
-- 包头内容: 45-00-00-40-EE-04-40-00-40-06-FC-14-C0-A8-14-94-3C-08-3F-5A
-- 消息长度: 44
-- 消息内容: 39-F7-00-50-A1-1E-D8-AD-00-00-00-00-B0-02-FF-FF-31-4C-00-00-02-04-05-B4-01-03-03-03-01-01-08-0A-00-00-00-00-00-00-00-00-01-01-04-02
我大菜鸟,请高人指点,不胜感激!
首先要可以实时监控url,请大虾们帮帮我啊
实际上,若不是以二进制数据提交(上传文件时会使用),HTTP协议头就是一个字符串。
你可以参考下
http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html
应该怎么做呢