服务器端代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using GDW.MessageService;
using System.Threading;namespace WindowsApplication5
{
public partial class Form1 : Form
{
TcpClient client;
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
//启动监听线程
Thread tsAccept = new Thread(new ThreadStart(StartListening));
tsAccept.Start();
} /// <summary>
/// 监听线程函数,用于调用具体处理类
/// </summary>
private void StartListening()
{
//Listener listener = new Listener(); //从配置文件中读取ip,端口号
//string serverAddress;
//string serverPort;
//Utility.GetServerConfig(out serverAddress, out serverPort);
int iServerPort = int.Parse("6000"); TcpListener listener = new TcpListener(IPAddress.Any, iServerPort);
listener.Start();
while (true)
{
try
{
client = listener.AcceptTcpClient();
//开启消息处理线程
Thread wManager = new Thread(new ThreadStart(ServiceClient));
wManager.Start();
}
catch (Exception ex)
{
Console.WriteLine("listening Error: " + ex.Message);
}
}//end while
} private void ServiceClient()
{
NetworkStream ns = client.GetStream(); Byte[] buffer = new Byte[100];
try
{
ns.Read(buffer, 0, buffer.Length);
ns.Close();
Encoding enc = Encoding.GetEncoding("GB2312");
string sClientCommand = enc.GetString(buffer);
Console.WriteLine(sClientCommand);
}
catch (Exception ex)
{
Console.Write(ex.ToString());
}
}
}
}
客户端代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using GDW.MessageService;
using System.Net;
using System.Net.Sockets;namespace WindowsApplication4
{
public partial class Form1 : Form
{
private static Socket weiwei;
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
weiwei = NetService.ConnectServer("192.168.58.88", 6000);
NetService.SendData(weiwei,"董伟", 10);
} private void Form1_Load(object sender, EventArgs e)
{
IPAddress ipAddress = IPAddress.Parse("192.168.58.88");
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, 6000);
weiwei = new Socket(ipEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
weiwei.Connect(ipEndPoint); //weiwei = NetService.ConnectServer("192.168.58.88", 6000);
NetService.SendData(weiwei, "董伟", 10);
}
}
}其中NetService是另一个类,用来发送数据用的问题:不知道什么原因,每次发数据都要重新连接一下 weiwei = NetService.ConnectServer("192.168.58.88", 6000);
NetService.ConnectServer()方法用于连接的,如果不连接就会报socket为空,请问有没有谁知道是什么原因啊,谢谢!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using GDW.MessageService;
using System.Threading;namespace WindowsApplication5
{
public partial class Form1 : Form
{
TcpClient client;
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
//启动监听线程
Thread tsAccept = new Thread(new ThreadStart(StartListening));
tsAccept.Start();
} /// <summary>
/// 监听线程函数,用于调用具体处理类
/// </summary>
private void StartListening()
{
//Listener listener = new Listener(); //从配置文件中读取ip,端口号
//string serverAddress;
//string serverPort;
//Utility.GetServerConfig(out serverAddress, out serverPort);
int iServerPort = int.Parse("6000"); TcpListener listener = new TcpListener(IPAddress.Any, iServerPort);
listener.Start();
while (true)
{
try
{
client = listener.AcceptTcpClient();
//开启消息处理线程
Thread wManager = new Thread(new ThreadStart(ServiceClient));
wManager.Start();
}
catch (Exception ex)
{
Console.WriteLine("listening Error: " + ex.Message);
}
}//end while
} private void ServiceClient()
{
NetworkStream ns = client.GetStream(); Byte[] buffer = new Byte[100];
try
{
ns.Read(buffer, 0, buffer.Length);
ns.Close();
Encoding enc = Encoding.GetEncoding("GB2312");
string sClientCommand = enc.GetString(buffer);
Console.WriteLine(sClientCommand);
}
catch (Exception ex)
{
Console.Write(ex.ToString());
}
}
}
}
客户端代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using GDW.MessageService;
using System.Net;
using System.Net.Sockets;namespace WindowsApplication4
{
public partial class Form1 : Form
{
private static Socket weiwei;
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
weiwei = NetService.ConnectServer("192.168.58.88", 6000);
NetService.SendData(weiwei,"董伟", 10);
} private void Form1_Load(object sender, EventArgs e)
{
IPAddress ipAddress = IPAddress.Parse("192.168.58.88");
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, 6000);
weiwei = new Socket(ipEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
weiwei.Connect(ipEndPoint); //weiwei = NetService.ConnectServer("192.168.58.88", 6000);
NetService.SendData(weiwei, "董伟", 10);
}
}
}其中NetService是另一个类,用来发送数据用的问题:不知道什么原因,每次发数据都要重新连接一下 weiwei = NetService.ConnectServer("192.168.58.88", 6000);
NetService.ConnectServer()方法用于连接的,如果不连接就会报socket为空,请问有没有谁知道是什么原因啊,谢谢!
解决方案 »
- button控件通过获取一个值判断是否启用
- window2003 server装bs程序不好用
- 视图问题!
- 我的vs.net2005建立一个空的解决方案,再添加别的项目的时候就会被别的项目所代替
- 如何使用C#获取需要通过身份验证的网页内容?
- 字符串和数字的问题
- asp.net网站上传后无法显示
- 100分!!求高手指点!!Bitmap GDI+封装位图后,封装后图片打印不清晰,封装位图过程图片有损失该怎么解决??
- 关于给网址加上链接的--正则表达式
- 请问高手,如何取消安装.net的自动登录?
- 如何通过点击按钮增加多行文本框的内容
- 为什么使用OpenFileDialog控件后应用程序的路径发生了问题
用 socket.bind(.. );
socket.accept();
不知能否给你一点帮助
private void ServiceClient(object param)
{
TcpClient client=(TcpClient)param;
NetworkStream ns = client.GetStream(); Byte[] buffer = new Byte[100];
try
{
ns.Read(buffer, 0, buffer.Length);
ns.Close();
Encoding enc = Encoding.GetEncoding( "GB2312");
string sClientCommand = enc.GetString(buffer);
Console.WriteLine(sClientCommand);
}
catch (Exception ex)
{
Console.Write(ex.ToString());
}
}
//調用時,修改為
Thread wManager= new Thread(new ParameterizedThreadStart(ServiceClient));
{
client = listener.AcceptTcpClient();
//开启消息处理线程
Thread wManager = new Thread(new ThreadStart(ServiceClient));
wManager.Start(client);
}
private void ServiceClient(object param)
{
TcpClient client=(TcpClient)param;
NetworkStream ns = client.GetStream(); Byte[] buffer = new Byte[100];
try
{
ns.Read(buffer, 0, buffer.Length);
ns.Close();
Encoding enc = Encoding.GetEncoding( "GB2312");
string sClientCommand = enc.GetString(buffer);
Console.WriteLine(sClientCommand);
}
catch (Exception ex)
{
Console.Write(ex.ToString());
}
}
//調用時,修改為
try
{
client = listener.AcceptTcpClient();
//开启消息处理线程
Thread wManager= new Thread(new ParameterizedThreadStart(ServiceClient));
wManager.Start(client);
}
private void ServiceClient(object param)
{
TcpClient client=(TcpClient)param;
NetworkStream ns = client.GetStream(); Byte[] buffer = new Byte[100];
try
{
ns.Read(buffer, 0, buffer.Length);
ns.Close();
Encoding enc = Encoding.GetEncoding( "GB2312");
string sClientCommand = enc.GetString(buffer);
Console.WriteLine(sClientCommand);
}
catch (Exception ex)
{
Console.Write(ex.ToString());
}
}
//調用時,修改為
try
{
client = listener.AcceptTcpClient();
//开启消息处理线程
Thread wManager= new Thread(new ParameterizedThreadStart(ServiceClient));
wManager.Start(client);
}