110,545
社区成员
发帖
与我相关
我的任务
分享
private void Form1_Load(object sender, EventArgs e)
{
Thread th = new Thread(new ThreadStart(run));
th.Start();
}
public void run()
{
server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
server.Bind(new IPEndPoint(IPAddress.Any, 40000));
server.Listen(0);
//连接到客户端
LogHelper.WriteLog("开始监听...");
Socket socket = server.Accept();
LogHelper.WriteLog("有链接");
receiveFile(socket);
}
private void receiveFile(Socket socket)
{
byte[] inputByte = new byte[1024];
int length = 0;
NetworkStream ntwStream = new NetworkStream(socket);
StreamReader strmReader = new StreamReader(ntwStream);
FileStream fs = null;
FileStream fs2 = null;
StringBuilder sb = new StringBuilder();
try
{
try
{
socket.Receive(inputByte);
LogHelper.WriteLog(">>>>>>>inputByte>>>>>>>>>>" + Encoding.UTF8.GetString(inputByte));
fs = new System.IO.FileStream("d:/cc.jpg", System.IO.FileMode.Create, System.IO.FileAccess.Write);
fs2 = new System.IO.FileStream("d:/cc.txt", System.IO.FileMode.Create, System.IO.FileAccess.Write);
LogHelper.WriteLog(">>>开始接收数据>>>");
int a =fs.Read(inputByte, 0, inputByte.Length);
while ((length = a) > 0)
{
string s = System.Text.Encoding.Default.GetString(inputByte);
if (s.IndexOf("over") > -1)
{
LogHelper.WriteLog(">> : " + s);
}
else if (s.IndexOf("00000000") > -1)
{
LogHelper.WriteLog(">> : " + s);
fs.Write(inputByte, 21, length - 21);
fs2.Write(inputByte, 21, length - 21);
}
else if (s.IndexOf("11111111") > -1)
{
LogHelper.WriteLog(s);
fs.Write(inputByte, 0, length - 8);
fs2.Write(inputByte, 0, length - 8);
break;
}
else
{
fs.Write(inputByte, 0, length);
fs2.Write(inputByte, 0, length);
}
}
fs.Close();
LogHelper.WriteLog(">>>>接收完成!>>>");
}
finally
{
if (fs != null)
fs.Close();
if (strmReader != null)
strmReader.Close();
if (socket != null)
socket.Close();
LogHelper.WriteLog(">>>>关闭完成!>>>");
}
}
catch (Exception ex)
{
LogHelper.WriteLog(">>>>出错>>>" + ex.Message);
}
}