C#如何读取IP包 Socket socket = listener.Accept();socket.Receive(); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 class Program { static void Main(string[] args) { Console.WriteLine("Server is running ... "); IPAddress ip = new IPAddress(new byte[] { 127, 0, 0, 1 }); TcpListener listener = new TcpListener(ip, 8500); listener.Start(); // 开始侦听 Console.WriteLine("Start Listening ..."); Console.WriteLine(@"\n\n输入\ Q\ 键退出。"); ConsoleKey key; byte[] m_RecvDataBuffer = new byte[0x10000]; Socket socketlisten = listener.AcceptSocket(); int Count = socketlisten.Receive(m_RecvDataBuffer);//只接受一次,线程会被堵塞在此,除非有数据包进来 byte[] receiveBuffer = new byte[Count]; Buffer.BlockCopy(m_RecvDataBuffer, 0, receiveBuffer, 0, Count); if (Count > 0) { foreach (byte by in receiveBuffer) { Console.WriteLine(by); } } do { key = Console.ReadKey(true).Key; } while (key != ConsoleKey.Q); } }测试代码Socket send = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);if (!send.Connected) { send.Connect("127.0.0.1", 8500); } byte[] by = new byte[]{ 11,12,13}; send.Send(by); IPAddress ip = IPAddress.Parse("127.0.0.1"); TcpListener listener = new TcpListener(ip, 9999); listener.Start();//开始侦听 Console.WriteLine("开始侦听"); while(true) { TcpClient tcpclient = listener.AcceptTcpClient(); Console.WriteLine("连接成功{0}-->{1}", tcpclient.Client.RemoteEndPoint.ToString(), tcpclient.Client.LocalEndPoint.ToString()); NetworkStream ns = tcpclient.GetStream(); StreamReader sread = new StreamReader(ns); Console.WriteLine(sread.ReadToEnd()); } 一个集合接口的问题2 C#做项目遇到了一个问题,求高手帮忙解决,谢谢! 提示窗口的问题 小弟初学,datatable和dataset还没有搞清楚 在用户直接关闭IE浏览器时,如何让Cookie失效? 如何取得窗口(或控件)可用宽度? 关于日历的一些问题 SQL Server 2005 连接字符串 请问在 vs2005中如何创建一个windows应用程序?? 如何把ArrayList类转换成可在SOCKET中传送的字节? ODAC与oracle client的兼容性问题 求助!线程访问数据库,高手快来
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Server is running ... ");
IPAddress ip = new IPAddress(new byte[] { 127, 0, 0, 1 });
TcpListener listener = new TcpListener(ip, 8500);
listener.Start(); // 开始侦听
Console.WriteLine("Start Listening ...");
Console.WriteLine(@"\n\n输入\ Q\ 键退出。");
ConsoleKey key;
byte[] m_RecvDataBuffer = new byte[0x10000];
Socket socketlisten = listener.AcceptSocket();
int Count = socketlisten.Receive(m_RecvDataBuffer);//只接受一次,线程会被堵塞在此,除非有数据包进来
byte[] receiveBuffer = new byte[Count];
Buffer.BlockCopy(m_RecvDataBuffer, 0, receiveBuffer, 0, Count);
if (Count > 0)
{
foreach (byte by in receiveBuffer)
{
Console.WriteLine(by);
}
}
do
{
key = Console.ReadKey(true).Key; } while (key != ConsoleKey.Q);
}
}
测试代码Socket send = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
if (!send.Connected)
{
send.Connect("127.0.0.1", 8500);
}
byte[] by = new byte[]{
11,12,13};
send.Send(by);
IPAddress ip = IPAddress.Parse("127.0.0.1");
TcpListener listener = new TcpListener(ip, 9999);
listener.Start();//开始侦听
Console.WriteLine("开始侦听");
while(true)
{
TcpClient tcpclient = listener.AcceptTcpClient();
Console.WriteLine("连接成功{0}-->{1}", tcpclient.Client.RemoteEndPoint.ToString(), tcpclient.Client.LocalEndPoint.ToString());
NetworkStream ns = tcpclient.GetStream();
StreamReader sread = new StreamReader(ns);
Console.WriteLine(sread.ReadToEnd());
}