c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx

上传人:b****2 文档编号:1393783 上传时间:2023-04-30 格式:DOCX 页数:62 大小:33.31KB
下载 相关 举报
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第1页
第1页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第2页
第2页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第3页
第3页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第4页
第4页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第5页
第5页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第6页
第6页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第7页
第7页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第8页
第8页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第9页
第9页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第10页
第10页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第11页
第11页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第12页
第12页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第13页
第13页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第14页
第14页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第15页
第15页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第16页
第16页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第17页
第17页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第18页
第18页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第19页
第19页 / 共62页
c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx_第20页
第20页 / 共62页
亲,该文档总共62页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx

《c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx》由会员分享,可在线阅读,更多相关《c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx(62页珍藏版)》请在冰点文库上搜索。

c# winform socket网络编程点对点传输文件socket文件传输监听端口Word文档格式.docx

20. 

Form1() 

21. 

22. 

InitializeComponent();

23. 

24. 

25. 

//不显示出dataGridView1的最后一行空白 

26. 

dataGridView1.AllowUserToAddRows 

false;

27. 

28. 

29. 

30. 

#region 

定义变量 

31. 

32. 

33. 

#endregion 

34. 

35. 

36. 

37. 

进入窗体即启动服务 

38. 

39. 

private 

void 

Form1_Load(object 

sender, 

EventArgs 

e) 

40. 

41. 

//开启接收线程 

42. 

Thread 

TempThread 

new 

Thread(new 

ThreadStart(this.StartReceive));

43. 

TempThread.Start();

44. 

45. 

46. 

47. 

48. 

49. 

50. 

51. 

功能函数 

52. 

53. 

StartReceive() 

54. 

55. 

//创建一个网络端点 

56. 

IPEndPoint 

ipep 

IPEndPoint(IPAddress.Any, 

int.Parse("

2005"

));

57. 

58. 

//MessageBox.Show(IPAddress.Any);

59. 

60. 

//创建一个套接字 

61. 

Socket 

server 

Socket(AddressFamily.InterNetwork, 

SocketType.Stream, 

ProtocolType.Tcp);

62. 

63. 

//绑定套接字到端口 

64. 

server.Bind(ipep);

65. 

66. 

//开始侦听(并堵塞该线程) 

67. 

server.Listen(10);

68. 

69. 

//确认连接 

70. 

client 

server.Accept();

71. 

72. 

//获得客户端节点对象 

73. 

clientep 

(IPEndPoint)client.RemoteEndPoint;

74. 

75. 

76. 

77. 

//获得[文件名] 

78. 

string 

SendFileName 

System.Text.Encoding.Unicode.GetString(TransferFiles.ReceiveVarData(client));

79. 

//MessageBox.Show("

文件名"

SendFileName);

80. 

81. 

//获得[包的大小] 

82. 

bagSize 

83. 

包大小"

bagSize);

84. 

85. 

//获得[包的总数量] 

86. 

int 

bagCount 

int.Parse(System.Text.Encoding.Unicode.GetString(TransferFiles.ReceiveVarData(client)));

87. 

包的总数量"

bagCount);

88. 

89. 

//获得[最后一个包的大小] 

90. 

bagLast 

91. 

最后一个包的大小"

bagLast);

92. 

93. 

//创建一个新文件 

94. 

FileStream 

MyFileStream 

FileStream(SendFileName, 

FileMode.Create, 

FileAccess.Write);

95. 

96. 

//已发送包的个数 

97. 

SendedCount 

0;

98. 

99. 

while 

(true) 

100. 

101. 

byte[] 

data 

TransferFiles.ReceiveVarData(client);

102. 

if 

(data.Length 

== 

0) 

103. 

104. 

break;

105. 

106. 

else 

107. 

108. 

SendedCount++;

109. 

//将接收到的数据包写入到文件流对象 

110. 

MyFileStream.Write(data, 

0, 

data.Length);

111. 

//显示已发送包的个数 

112. 

已发送包个数"

+SendedCount.ToString());

113. 

114. 

115. 

116. 

//关闭文件流 

117. 

MyFileStream.Close();

118. 

//关闭套接字 

119. 

client.Close();

120. 

121. 

//填加到dgv里 

122. 

//文件大小,IP,已发送包的个数,文件名,包的总量,最后一个包的大小 

123. 

this.dataGridView1.Rows.Add(bagSize, 

clientep.Address, 

SendedCount, 

SendFileName, 

bagCount, 

124. 

125. 

文件接收完毕!

"

);

126. 

127. 

128. 

129. 

130. 

131. 

132. 

133. 

134. 

拦截Windows消息,关闭窗体时执行 

135. 

protected 

override 

WndProc(ref 

Message 

m) 

136. 

137. 

const 

WM_SYSCOMMAND 

0x0112;

138. 

SC_CLOSE 

0xF060;

139. 

(m.Msg 

&

(int)m.WParam 

SC_CLOSE) 

140. 

{//捕捉关闭窗体消息 

141. 

// 

User 

clicked 

close 

button 

142. 

//this.WindowState 

FormWindowState.Minimized;

//把右上角红叉关闭按钮变最小化 

143. 

144. 

ServiceStop();

145. 

146. 

base.WndProc(ref 

m);

147. 

148. 

149. 

150. 

151. 

停止服务 

152. 

153. 

//停止服务 

154. 

ServiceStop() 

155. 

156. 

try 

157. 

158. 

159. 

160. 

catch 

161. 

162. 

163. 

164. 

165. 

166. 

167. 

168. 

169. 

170. 

171. 

172.} 

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Text;

usingSystem.Windows.Forms;

usingSystem.Net;

usingSystem.Threading;

usingSystem.Net.Sockets;

usingSystem.IO;

namespaceTestSocketServerHSTF

{

publicpartialclassForm1:

Form

{

publicForm1()

{

InitializeComponent();

//不显示出dataGridView1的最后一行空白

dataGridView1.AllowUserToAddRows=false;

}

#region定义变量

#endregion

#region进入窗体即启动服务

privatevoidForm1_Load(objectsender,EventArgse)

//开启接收线程

ThreadTempThread=newThread(newThreadStart(this.StartReceive));

TempThread.Start();

#region功能函数

privatevoidStartReceive()

//创建一个网络端点

IPEndPointipep=newIPEndPoint(IPAddress.Any,int.Parse("

//MessageBox.Show(IPAddress.Any);

//创建一个套接字

Socketserver=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

//绑定套接字到端口

server.Bind(ipep);

//开始侦听(并堵塞该线程)

server.Listen(10);

//确认连接

Socketclient=server.Accept();

//获得客户端节点对象

IPEndPointclientep=(IPEndPoint)client.RemoteEndPoint;

//获得[文件名]

stringSendFileName=System.Text.Encoding.Unicode.GetString(TransferFiles.ReceiveVarData(client));

//MessageBox.Show("

+SendFileName);

//获得[包的大小]

stringbagSize=System.Text.Encoding.Unicode.GetString(TransferFiles.ReceiveVarData(client));

+bagSize);

//获得[包的总数量]

intbagCount=int.Parse(System.Text.Encoding.Unicode.GetString(TransferFiles.ReceiveVarData(client)));

+bagCount);

//获得[最后一个包的大小]

stringbagLast=System.Text.Encoding.Unicode.GetString(TransferFiles.ReceiveVarData(client));

+bagLast);

//创建一个新文件

FileStreamMyFileStream=newFileStream(SendFileName,FileMode.Create,FileAccess.Write);

//已发送包的个数

intSendedCount=0;

while(true)

{

byte[]data=TransferFiles.ReceiveVarData(client);

if(data.Length==0)

{

break;

}

else

SendedCount++;

//将接收到的数据包写入到文件流对象

MyFileStream.Write(data,0,data.Length);

//显示已发送包的个数

//MessageBox.Show("

}

//关闭文件流

MyFileStream.Close();

//关闭套接字

client.Close();

//填加到dgv里

//文件大小,IP,已发送包的个数,文件名,包的总量,最后一个包的大小

this.dataGridView1.Rows.Add(bagSize,clientep.Address,SendedCount,SendFileName,bagCount,bagLast);

#region拦截Windows消息,关闭窗体时执行

protectedoverridevoidWndProc(refMessagem)

constintWM_SYSCOMMAND=0x0112;

constintSC_CLOSE=0xF060;

if(m.Msg==WM_SYSCOMMAND&

(int)m.WParam==SC_CLOSE)

{//捕捉关闭窗体消息

//Userclickedclosebutton

//this.WindowState=FormWindowState.Minimized;

//把右上角红叉关闭按钮变最小化

ServiceStop();

base.WndProc(refm);

#region停止服务

//停止服务

privatevoidServiceStop()

try

catch{}

}

}

客户端用来发送文件,选择文件后点发送按钮发送文件

客户端代码:

1.//////////////////////////////////////////////////////////////////////////////// 

2.//title:

点对点文件传输程序 

// 

3.//////////////////////////////////////////////////////////////////////////////// 

4. 

5.//////////////////////////Begin-发送端////////////////////////////////// 

8.using 

System.Collections;

9.using 

13.using 

15.using 

16. 

17.namespace 

发送端 

18.{ 

/// 

<

summary>

的摘要说明。

/summary>

System.Windows.Forms.Form 

System.Windows.Forms.GroupBox 

groupBox1;

System.Windows.Forms.OpenFileDialog 

openFileDialog1;

System.Windows.Forms.TextBox 

textBox1;

System.Windows.Forms.Button 

button1;

System.Windows.Forms.Label 

la

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2