作为服务器端,现在已经接收到了从客户端发来的消息数据,也就是下面代码中msg变量的值,但是我不会把它解析出来,
客户端是一个GPS车载定位设备,向服务器端发送报文。服务器端接受数据,并且要把数据解析出来,比如时间,速度,经度,纬度等等。服务器端代码如下:
namespace SocketFive
{
public partial class SocketFive : Form
{
public SocketFive()
{
InitializeComponent();
}
public static string message = "ABC&";
public static string response = "";
private void Listen()
{
IPAddress localAddr = IPAddress.Parse("192.168.0.205");
Int32 port = 11000;
TcpListener tcpListener = new TcpListener(localAddr, port);
//开始侦听
tcpListener.Start();
//返回可以用以处理连接的Socket实例
Socket socketForClient = tcpListener.AcceptSocket();
try
{
//如果返回值是"true",则产生的套节字已经接受来自远方的连接请求
if (socketForClient.Connected)
{ while (true)
{
//创建networkStream对象通过网络套节字来接受和发送数据
NetworkStream ns = new NetworkStream(socketForClient);
//从当前数据流中读取一行字符,返回值是字符串
StreamReader sr = new StreamReader(ns);
string msg = sr.ReadLine();
message += msg+"&";
MessageBox.Show(message);
response = "1";
StreamWriter sw = new StreamWriter(ns);
if (response != "")
{ //往当前的数据流中写入一行字符串
sw.WriteLine(response);
//刷新当前数据流中的数据
sw.Flush();
}
sr.Close();
}
}
}
catch (Exception ey)
{
MessageBox.Show(ey.ToString());
}
} private void btnStart_Click(object sender, EventArgs e)
{
Thread _thread = new Thread(new ThreadStart(Listen));
_thread.Start();
}
}
}
客户端是一个GPS车载定位设备,向服务器端发送报文。服务器端接受数据,并且要把数据解析出来,比如时间,速度,经度,纬度等等。服务器端代码如下:
namespace SocketFive
{
public partial class SocketFive : Form
{
public SocketFive()
{
InitializeComponent();
}
public static string message = "ABC&";
public static string response = "";
private void Listen()
{
IPAddress localAddr = IPAddress.Parse("192.168.0.205");
Int32 port = 11000;
TcpListener tcpListener = new TcpListener(localAddr, port);
//开始侦听
tcpListener.Start();
//返回可以用以处理连接的Socket实例
Socket socketForClient = tcpListener.AcceptSocket();
try
{
//如果返回值是"true",则产生的套节字已经接受来自远方的连接请求
if (socketForClient.Connected)
{ while (true)
{
//创建networkStream对象通过网络套节字来接受和发送数据
NetworkStream ns = new NetworkStream(socketForClient);
//从当前数据流中读取一行字符,返回值是字符串
StreamReader sr = new StreamReader(ns);
string msg = sr.ReadLine();
message += msg+"&";
MessageBox.Show(message);
response = "1";
StreamWriter sw = new StreamWriter(ns);
if (response != "")
{ //往当前的数据流中写入一行字符串
sw.WriteLine(response);
//刷新当前数据流中的数据
sw.Flush();
}
sr.Close();
}
}
}
catch (Exception ey)
{
MessageBox.Show(ey.ToString());
}
} private void btnStart_Click(object sender, EventArgs e)
{
Thread _thread = new Thread(new ThreadStart(Listen));
_thread.Start();
}
}
}
解决方案 »
- sharepoint中如何实现域用户和用户组信息同步
- c#调用API(GetModuleFileName)获取程序路径返回乱码问题
- C#什么时候可用于3G手机编程
- 如何做一个像vs.net环境里的那种活页夹标签,就是有重叠效果的那种??
- 点击右上角”关闭“,程序并不关闭,进入托盘区,并且不显示在状态区,怎么实现?
- 50分问一个让控件消失的问题.解决立刻结!
- datagridview 数据库中时间格式数据显示问题
- 如何得到含有中文的字符串的真正长度?
- 为何C#不能连接远程SQL SERVER数据库?
- 我这里有个 国内一家知名公司开发的erp软件, 我有原码,谁要?
- GridView控件与DropDownList控件的组合应用谁能给个范例!
- 帖子分页后,楼层又从一楼开始 等 问题
2010-4-10 10:08:13: 376: ~?11111118601234567 ~
2010-4-10 10:09:24: 376: ~?11111118601234567 ~
2010-4-10 10:09:54: 376: ~?11111118601234567 ~
2010-4-10 10:10:24: 376: ~?11111118601234567 ~
2010-4-10 10:11:35: 376: ~?11111118601234567 ~
2010-4-10 10:12:04: 376: ~?11111118601234567 ~
2010-4-10 10:12:35: 376: ~?11111118601234567 ~
2010-4-10 10:14:06: 376: ~?11111118601234567 ~
2010-4-10 10:14:36: 376: ~?11111118601234567 ~
2010-4-10 10:15:06: 376: ~?11111118601234567 ~
2010-4-10 10:16:17: 376: ~?11111118601234567 ~
2010-4-10 10:16:47: 376: ~?11111118601234567 ~
2010-4-10 10:17:17: 376: ~?11111118601234567 ~