|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2004/4/22 12:53:59 |
标题: |
请教,关于网络通信,急!先谢各位前辈了。 |
浏览:1413 |
|
加入我的收藏 |
楼主: |
以下代码是一个关于发送图象的代码,
希望前辈能替我讲解一下下面的代码的含义,或怎样把它转化成delphi中的代码呢?
时间紧,希望前辈们给予指点。
private void tx_file(string strFileName,EndPoint rmEP) { byte[] tmpBuf = new byte[10]; FileStream fs = new FileStream(strFileName,FileMode.Open,FileAccess.Read); if (fs == null) { MessageBox.Show("打开图形文件失败!"); tmpBuf.Initialize(); //发送文件长度为0,使终端返回 m_counter_socket.SendTo(tmpBuf,4,SocketFlags.None,rmEP); } else { int iFileLength; iFileLength = (int)fs.Length; byte [] tmpInfo = Encoding.Default.GetBytes(iFileLength.ToString()); byte [] bSendData = new byte[10]; byte [] tmpACK = new byte[2]; tmpInfo.CopyTo(bSendData,0); //发送文件长度 m_counter_socket.SendTo(bSendData,10,SocketFlags.None,rmEP); byte [] bmpData = new byte[512]; while(iFileLength>0) { if(iFileLength>=512) { fs.Read(bmpData,0,512); m_counter_socket.SendTo(bmpData,512,SocketFlags.None,rmEP); while(tmpACK[0] != 0x06) { if (m_counter_socket.Available>0) { m_counter_socket.ReceiveFrom(tmpACK,1,SocketFlags.None,ref rmEP); } } tmpACK[0]=0x00; iFileLength -= 512; } else { fs.Read(bmpData,0,iFileLength); m_counter_socket.SendTo(bmpData,iFileLength,SocketFlags.None,rmEP); iFileLength -= iFileLength; } } //关闭文件 fs.Close(); } }
----------------------------------------------
我是一个新人,希望能得到ggjj的帮助。
为生活所迫,需要学习delphi,但是这段经历会成为我成长的记忆;
大家的帮助则是我这段时间里最温暖的记忆
click here to my blog |
作者: |
|
2004/4/22 15:48:57 |
1楼: |
其实dream 兄已经给了我一个方向,可是关于细节部分还是写不来,就象写作文不会单词语法一样,哎。。。
----------------------------------------------
我是一个新人,希望能得到ggjj的帮助。
为生活所迫,需要学习delphi,但是这段经历会成为我成长的记忆;
大家的帮助则是我这段时间里最温暖的记忆
click here to my blog
|
作者: |
edust (edsut) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2004/4/22 16:08:27 |
2楼: |
这是用WinSock的. 本站有个 ICBChat V1.01 在线聊天室 有相对应的Delphi代码
----------------------------------------------
http://www.emu32.com
|
作者: |
|
2004/4/22 17:16:07 |
3楼: |
1。问一下,按照dream兄说的,可以使用udpsocket的sendto方法,我看了帮助,似乎sendbuff也可以,那希望有前辈指引应该选择哪一种方法呢?
2。在c#中,private void tx_file(string strFileName,EndPoint rmEP),EndPoint在这里指的在delphi中对应的是什么呢?
3。在delphi中,涉及16进制的数,是怎样写的操作,例如tmpACK[0]=0x00在delphi中应该怎么写呢?
希望前辈指教。。。
----------------------------------------------
我是一个新人,希望能得到ggjj的帮助。
为生活所迫,需要学习delphi,但是这段经历会成为我成长的记忆;
大家的帮助则是我这段时间里最温暖的记忆
click here to my blog
|
|