110,571
社区成员
发帖
与我相关
我的任务
分享
while(!m_Done)
{
//try
//{
IPEndPoint endpoint = null;
Byte[] data;
try
{
data = m_Server.Receive(ref endpoint);
}
catch (Exception err)
{
data = new byte[2];
data[0] = (byte)0;
data[1] = (byte)0;
Listener();
ExTrace.ShowException(err);
}
Opcodes opcode = (Opcodes)(short)0;
opcode = (Opcodes)(short)((((short)data[0]) * 256) + (short)data[1]);
//ExTrace.WriteLineIf(TFTPServerTraceSwitch.TraceVerbose,opcode.ToString() + " from " + endpoint.ToString());
switch(opcode)
{
case Opcodes.TFTP_RRQ:
DoReadRequest(data, endpoint);
break;
case Opcodes.TFTP_ERROR:
DoError(data, endpoint);
break;
case Opcodes.TFTP_ACK:
DoAck(data, endpoint);
break;
case Opcodes.TFTP_WRQ:
case Opcodes.TFTP_DATA:
case Opcodes.TFTP_OACK:
default:
ExTrace.WriteLineIf(TFTPServerTraceSwitch.TraceVerbose,"Unsupported Opcode");
break;
}
//这里是发送的
listener = new TcpListener(port);
listener.Start();
statusBarPanel1.Text = "开始监听......";
Thread thread = new Thread(new ThreadStart(receive));
thread.Start();
private void receive()
{
sock = listener.AcceptSocket();
if(sock.Connected)
{
statusBarPanel1.Text = "与客户建立连系....";
string str = richTextBox1.Text;
byte [] bytee = System.Text.Encoding.BigEndianUnicode.GetBytes(str.ToCharArray());
sock.Send(bytee,0,bytee.Length,0);
//接受信息
while(!control)
{
NetworkStream stream = new NetworkStream(sock);
byte [] by = new Byte[1024];
int i = sock.Receive(by,by.Length,0);
string ss = System.Text.Encoding.BigEndianUnicode.GetString(by);
richTextBox2.AppendText(ss);
j = richTextBox1.Lines.Length;
if(j>= 2)
{
//如果不是@@@@@@@
if(richTextBox2.Lines[j-2].ToString() !=" @@@@@@")
{
filestream = new FileStream(richTextBox2.Lines[j-2].ToString(),FileMode.Open,FileAccess.Read);
//读文件
byte [] bb = new byte[1024];
while ((number = filestream.Read(bb,0,1024) ) != 0)
{
stream.Write(bb,0,number);
stream.Flush();
}
//文件发送完成送EOF
string st ="<EOF>";
byte [] byt = new byte[1024];
byt = System.Text.Encoding.ASCII.GetBytes(st.ToCharArray());
sock.Send(byt,0,byt.Length,0);
filestream.Close();
}//if@@@@@@
else if(richTextBox2.Lines[j-2].ToString() == "@@@@@@")
{
control = true;
}
}//if(>=2)
}
}//if(sock.Connected)
}
//这里是接收端的
private void connectFuWu()
{
int port = 0;
IPAddress myIP = IPAddress.Parse("127.0.0.1");
try
{
myIP = IPAddress.Parse(textBox2.Text);
}
catch
{
MessageBox.Show("你输入的IP地址格式不正确");
}
try
{
port = Int32.Parse(textBox3.Text);
}
catch
{
MessageBox.Show("请输入整数。");
}
try
{
if(textBox1.Text != ""&&textBox2.Text=="")
{
client.Connect (textBox1.Text,port);
statusBarPanel1.Text = "与服务器建立连接";
//获取网络流
netStream = client.GetStream();
byte [] bb = new byte[6400];
//读数据(服务器文件名)
i = netStream.Read (bb,0,6400);
string ss = System.Text.Encoding.BigEndianUnicode.GetString (bb);
richTextBox1.AppendText(ss);
int j = richTextBox1.Lines.Length;
for(int k =0;k<j-1;k++)
{
comboBox1.Items.Add(richTextBox1.Lines[k]);
}
comboBox1.Text = comboBox1.Items[0].ToString();
}
if(textBox1.Text == ""&&textBox2.Text != "")
{
client.Connect(myIP,port);
statusBarPanel1.Text = "与服务器建立连接";
//获取网络流
netStream = client.GetStream();
byte [] bb = new byte[6400];
//读数据(服务器文件名)
i = netStream.Read (bb,0,6400);
string ss = System.Text.Encoding.BigEndianUnicode.GetString (bb);
richTextBox1.AppendText(ss);
int j = richTextBox1.Lines.Length;
for(int k =0;k<j-1;k++)
{
comboBox1.Items.Add(richTextBox1.Lines[k]);
}
comboBox1.Text = comboBox1.Items[0].ToString();
}
if(textBox1.Text !=""&&textBox2.Text !="")
{
client.Connect(myIP,port);
statusBarPanel1.Text = "与服务器建立连接";
//获取网络流
netStream = client.GetStream();
byte [] bb = new byte[6400];
//读数据(服务器文件名)
i = netStream.Read (bb,0,6400);
string ss = System.Text.Encoding.BigEndianUnicode.GetString (bb);
richTextBox1.AppendText(ss);
int j = richTextBox1.Lines.Length;
for(int k =0;k<j-1;k++)
{
comboBox1.Items.Add(richTextBox1.Lines[k]);
}
comboBox1.Text = comboBox1.Items[0].ToString();
}
}
catch(Exception err)
{
MessageBox.Show(err.Message);
}
}
//把filestream换成图形
System.Drawing
Graphics g;
g = this.CreateGraphics();