📄 program.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using JLL.SGIP;
using System.Net;
using System.Net.Sockets;
namespace Test2
{
class Program
{
private static Socket _socket;
private static Deliver _deliver;
private static byte[] _buffer;
private static byte[] _receiveBuffer;
private static void init()
{
Bind b = new Bind();
b.LoginName = "jll";
b.LoginPassword = "jll";
b.LoginType = 2;
byte[] buffer = new byte[SgipConfig.MaxBufferCount];
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_socket.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8802));
_socket.Send(Command.CreateCommand(b).GetBytes());
_socket.Receive(buffer);
_deliver = new Deliver();
_deliver.SPNumber = "8088001";
_deliver.MessageContent = "hello";
_buffer = Command.CreateCommand(_deliver).GetBytes();
_socket.BeginSend(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(OnSendDataCallback), _socket);
_receiveBuffer = new byte[4096];
_socket.BeginReceive(_receiveBuffer, 0, _receiveBuffer.Length, SocketFlags.None, new AsyncCallback(onReceiveData), _socket);
}
private static volatile int _sendCount = 0;
private static void OnSendDataCallback(IAsyncResult ar)
{
Socket s = (Socket)ar.AsyncState;
try
{
s.EndSend(ar);
if (++_sendCount < 2)
{
if ((_sendCount % 1000) == 0)
{
Console.WriteLine(_sendCount);
//System.Threading.Thread.Sleep(3000);
}
_buffer = Command.CreateCommand(_deliver).GetBytes();
s.BeginSend(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(OnSendDataCallback), s);
}
else
{
Console.WriteLine("发送结束:{0}", _sendCount);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.WriteLine("发生错误,但共发送结束:{0}", _sendCount);
}
}
private static volatile int _receiveCount = 0;
private static void onReceiveData(IAsyncResult ar)
{
Socket s = (Socket)ar.AsyncState;
try
{
int nRead = s.EndReceive(ar);
if (nRead > 0)
{
++_receiveCount;
Console.WriteLine("共接收到了应答:{0}", _receiveCount);
s.BeginReceive(_receiveBuffer, 0, _receiveBuffer.Length, SocketFlags.None, new AsyncCallback(onReceiveData), s);
return;
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
static void Main(string[] args)
{
try
{
Console.WriteLine("begin to work!");
init();
Console.Read();
}
finally
{
SgipHelper.ShutdownAndCloseSocket(_socket);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -