服务器端//启动服务
private void btnStar_Click(object sender, EventArgs e)
{
try
{
IPAddress serIpAdd = IPAddress.Parse(this.txtIpAdd.Text);//IP地址
int serPort = Int32.Parse(this.txtPort.Text);//端口
serEndPoint = new IPEndPoint(serIpAdd, serPort);
serviceSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
serviceSocket.Bind(serEndPoint);
serviceSocket.Listen(10);//设置监听频率
myThead = new Thread(new ThreadStart(newBeginListen));
myThead.Start();
timeDate.Start();
this.txtLogMsg.Invoke(new SetLogMsgCallback(SetLogMsg), " 启动成功!");
}
catch (Exception)
{
throw;
}
}private void newBeginListen()
{
while (true)
{
Thread.Sleep(300);
Socket newSocket = serviceSocket.Accept();//为新的连接创建Socket
IPAddress clientIp = ((System.Net.IPEndPoint)newSocket.RemoteEndPoint).Address;//获取远程连接IP
int clientProt = ((System.Net.IPEndPoint)newSocket.RemoteEndPoint).Port;//端口
while (true)
{
Thread.Sleep(300);
if (byteSend != null)
{
try
{
newSocket.Send(System.Text.Encoding.Default.GetBytes(DateTime.Now.ToString()));
txtLogMsg.Invoke(new SetLogMsgCallback(SetLogMsg), " 发送数据:" + DateTime.Now.ToString() + " 客户端IP:" + clientIp + " 端口:" + clientProt);
}
catch (Exception)
{
txtLogMsg.Invoke(new SetLogMsgCallback(SetLogMsg), " 发送失败!");
}
} try
{
byte[] message = new byte[1024];
string msg = ""; int bytes = newSocket.Receive(message);//接收数据 返回整个包长度
msg = Encoding.Default.GetString(message, 0, bytes); msg += "ClientIp:" + clientIp + ",ClientProt:" + clientProt; lock (thisLock)
{
byteGet = message;
}
txtLogMsg.Invoke(new SetLogMsgCallback(SetLogMsg), " 收到数据:" + msg + " 客户端IP:" + clientIp + " 端口:" + clientProt);
}
catch (Exception e)
{
txtLogMsg.Invoke(new SetLogMsgCallback(SetLogMsg), " 接受失败!" + e);
}
}
}
}
private void btnStar_Click(object sender, EventArgs e)
{
try
{
IPAddress serIpAdd = IPAddress.Parse(this.txtIpAdd.Text);//IP地址
int serPort = Int32.Parse(this.txtPort.Text);//端口
serEndPoint = new IPEndPoint(serIpAdd, serPort);
serviceSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
serviceSocket.Bind(serEndPoint);
serviceSocket.Listen(10);//设置监听频率
myThead = new Thread(new ThreadStart(newBeginListen));
myThead.Start();
timeDate.Start();
this.txtLogMsg.Invoke(new SetLogMsgCallback(SetLogMsg), " 启动成功!");
}
catch (Exception)
{
throw;
}
}private void newBeginListen()
{
while (true)
{
Thread.Sleep(300);
Socket newSocket = serviceSocket.Accept();//为新的连接创建Socket
IPAddress clientIp = ((System.Net.IPEndPoint)newSocket.RemoteEndPoint).Address;//获取远程连接IP
int clientProt = ((System.Net.IPEndPoint)newSocket.RemoteEndPoint).Port;//端口
while (true)
{
Thread.Sleep(300);
if (byteSend != null)
{
try
{
newSocket.Send(System.Text.Encoding.Default.GetBytes(DateTime.Now.ToString()));
txtLogMsg.Invoke(new SetLogMsgCallback(SetLogMsg), " 发送数据:" + DateTime.Now.ToString() + " 客户端IP:" + clientIp + " 端口:" + clientProt);
}
catch (Exception)
{
txtLogMsg.Invoke(new SetLogMsgCallback(SetLogMsg), " 发送失败!");
}
} try
{
byte[] message = new byte[1024];
string msg = ""; int bytes = newSocket.Receive(message);//接收数据 返回整个包长度
msg = Encoding.Default.GetString(message, 0, bytes); msg += "ClientIp:" + clientIp + ",ClientProt:" + clientProt; lock (thisLock)
{
byteGet = message;
}
txtLogMsg.Invoke(new SetLogMsgCallback(SetLogMsg), " 收到数据:" + msg + " 客户端IP:" + clientIp + " 端口:" + clientProt);
}
catch (Exception e)
{
txtLogMsg.Invoke(new SetLogMsgCallback(SetLogMsg), " 接受失败!" + e);
}
}
}
}
解决方案 »
- 录的wav文件声音很小,希望用PlaySound或DirectSound播放时将声音放大?
- [源码]WIN7/Vista下简单方式实现各种图像色深之间的转换。
- .net如何制作找回密码的功能
- .net高手,关于文本框联动的问题,急啊
- asp.net中调用服务器的EXE怎么释放掉
- 如何去掉网页TextBox的记忆功能?谢谢!
- 100分 求一新闻发布系统源代码,要求,带cs文件,没被编译成DLL
- 请指教ado.net + access +windowsapplication 中如何访问带密码的access数据库啊
- 请大家帮个忙,!!!!!
- 关于listbox的加载问题
- 正则表达式
- 关于class的位置?
{
try
{
if (LoadConFile())
{
IPAddress serIpAdd = IPAddress.Parse(this.txtIpAdd.Text);//IP地址
int serPort = Int32.Parse(this.txtPort.Text);//端口
serEndPoint = new IPEndPoint(serIpAdd, serPort);
clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
clientSocket.Connect(serEndPoint);//连接服务器终端 打开连接 没有Close长连接
lock (thisLock)
{
string send = string.Format("~Mon~|1|0|");//0表示包 没内容
byteSend = Encoding.Default.GetBytes("send");
}
thread = new Thread(new ThreadStart(newBeginListen));//首次连接
thread.Start();
timer1.Start();
SetLogMsg(" 启动成功!");
}
}
catch (Exception ex)
{
SetLogMsg(" 启动失败!" + ex);
}
}public void newBeginListen()
{
while (true)
{
Thread.Sleep(3000);
if (byteSend != null)
{
try
{
clientSocket.Send(byteSend); txtLogMsg.Invoke(new SetLogMsgCallback(SetLogMsg), " 发送数据:" + Encoding.Default.GetString(byteSend, 0, byteSend.Length)); lock (thisLock)
{
byteSend = null;
}
}
catch (Exception e)
{
txtLogMsg.Invoke(new SetLogMsgCallback(SetLogMsg), " 发送失败!" + e);
}
} try
{
byte[] message = new byte[1024];
string msg = "";
int bytes = clientSocket.Receive(message);//接收数据
msg = Encoding.Default.GetString(message, 0, bytes);
byteGet = message;
txtLogMsg.Invoke(new SetLogMsgCallback(SetLogMsg), " 收到数据:" + msg);
}
catch (Exception e)
{
txtLogMsg.Invoke(new SetLogMsgCallback(SetLogMsg), " 接受失败!" + e);
}
}
}