http://www.c-sharpcorner.com/Network/NetworkProgramPart2RVS.asp
解决方案 »
- ajax 中的status为什么=500啊??急
- 请教Asp.Net怎么实现WebDAV上传和下载
- vs.net中的textbox控件,在鼠标 按下光标总是最前面,无法地位到想要的位置
- C# 桌面截图 Windows Media(在线,马上结帖)
- c#动态生成40个按钮,大小(20,20),要求每行6个放置,算法如何?
- 初学c#,教材中的第一个例子出错
- 大家是用什么控件来实现象qq上的用户列表的功能
- 请问如何对查询到的表进行二次查询?
- C#打开文件对话框的问题
- 我没几个月甚至一两年没收入时,没人管我死活,当我可有了收入时,却有一堆人来收税!!!而那收入平滩到我没收入的时间上每月还不到800
- 请教:在C#中怎样的访问者的IP地址和浏览器?
- c#控制台程序小问题一个,请教大家。
private void begReceive()
{
StateObject state = new StateObject();
state.workSocket = handler;
handler.BeginReceive(state.buffer,0,StateObject.BufferSize,0,new AsyncCallback(ReadCallback),state); //中断指定的客户端
if(ClickBreak)
{
BreakClient(ref handler);
} string strAccept = "";
strAccept = state.sb.Append(System.Text.Encoding.UTF8.GetString(state.buffer,0,24)).ToString();
//sw.Write(handler.RemoteEndPoint.ToString()+":");
sw.WriteLine(strAccept);
//MessageBox.Show(strAccept);
txtSend.Text = strAccept;
sw.Flush();
}//end begReceive //异步回调方法ReadCallback
private void ReadCallback(IAsyncResult ar)
{
StateObject state = (StateObject) ar.AsyncState;
Socket tt = state.workSocket; //重新开始读取数据
try
{
//结束读取并获取读取字节数
//int bytesRead = handler.EndReceive(ar);
int bytesRead = tt.EndReceive(ar);
state.sb.Append(System.Text.Encoding.UTF8.GetString(state.buffer,0,bytesRead));
string content = state.sb.ToString();
state.sb.Remove(0,content.Length); //txtSend.Text = content;
textBox1.AppendText(tt.RemoteEndPoint.ToString()+": "+content+"\r\n"); tt.BeginReceive(state.buffer,0,StateObject.BufferSize,0,new AsyncCallback(ReadCallback),state);
}
catch
{
//从lvIncept控件删除相应的信息
if(ClickBreak == false)
{
for(int i=0;i<lvIncept.Items.Count;i++)
{
if(lvIncept.Items[i].SubItems[0].Text == tt.RemoteEndPoint.ToString())
{
lvIncept.Items[i].Remove();
}
}
} intClient--;
txtCount.Text = intClient.ToString();
}
}//end ReadCallback
public struct Message
{
string NickName;
int Number;
}
Message msg;
msg.NickName = "dongdong"
msg.Number = 14;
我怎么用Socket.Send(byte[])这个函数把msg发送出去?发送后另外一端怎么解析出来?
以下是我定义的一些有关内容.这里给出的是关于用户取回密码的一些定义.其它你把结构结定义成一个有特定意义的字符串就行了,然后在取回的时候再进行那样的结合就行了. {取回密码}
GetRegPwd='`GPWD`'; //取回密码请请求;
SendREgPwd='`SPWD`'; //服务器回传密码;
NoUsrID ='`NOID`'; //不存在的用户名;
ErrorInfo='`EINF`'; //请求信息不正确;
//SuccInfo ='`SINF`'; //取回密码成功;
{取回密码结构体}
PwdUsrID='``I``' ; //要确认的用户名;
PwdName ='``N``' ; //要确认的姓名; {返回密码时的标志}
RetPwd ='``RP`'; //返回用户密码 {结构体每一节的结束标志}
EndSymbol='|^|'; //每一节以此为结束标致