【发布时间】:2015-06-08 23:14:20
【问题描述】:
string[] s1 = { "5", "168", "789", "28", "29", "155" };
string s2[] = {"abc","bcs"};
private byte[] byteBuffer;
public ClientState(Socket clntSock)
{
this.clntSock = clntSock;
rcvBuffer = new byte[BUFSIZE]; // Receive buffer
byteBuffer = new byte[strings.Length];
for (int i = 0; i < s1.Length; i++)
{
byteBuffer[i] = Byte.Parse(strings[i]);
}
}
string[] strings = { "5", "168", "23", "28", "29", "155" };
private const int BUFSIZE = 32; // Size of receive buffer
private byte[] rcvBuffer;
private Socket clntSock;
private byte[][] byteBuffer;
private NetworkStream netStream;
public ClientState(Socket clntSock)
{
this.clntSock = clntSock;
rcvBuffer = new byte[BUFSIZE]; // Receive buffer
byteBuffer = new byte[strings.Length][];
byteBuffer = ToBytes(strings);
}
static byte[][] ToBytes(string[] ascii)
{
byte[][] results = ascii.AsEnumerable().Select(x => Encoding.UTF8.GetBytes(x)).ToArray();
return results;
}
public ClientState(NetworkStream netStream, byte[][] byteBuffer)
{
this.netStream = netStream;
this.byteBuffer = byteBuffer;
}
public NetworkStream NetStream
{
get
{
return netStream;
}
}
public byte[][] BByteBuffer
{
set
{
byteBuffer = value;
}
get
{
return byteBuffer;
}
}
string[] strings = { "5", "168", "23", "28", "29", "155" };
private const int BUFSIZE = 32; // Size of receive buffer
private byte[] rcvBuffer;
private Socket clntSock;
private byte[][] byteBuffer;
private NetworkStream netStream;
public ClientState(Socket clntSock)
{
this.clntSock = clntSock;
rcvBuffer = new byte[BUFSIZE]; // Receive buffer
byteBuffer = new byte[strings.Length][];
byteBuffer = ToBytes(strings);
}
static byte[][] ToBytes(string[] ascii)
{
byte[][] results = ascii.AsEnumerable().Select(x => Encoding.UTF8.GetBytes(x)).ToArray();
return results;
}
public ClientState(NetworkStream netStream, byte[][] byteBuffer)
{
this.netStream = netStream;
this.byteBuffer = byteBuffer;
}
public NetworkStream NetStream
{
get
{
return netStream;
}
}
public byte[][] BByteBuffer
{
set
{
byteBuffer = value;
}
get
{
return byteBuffer;
}
}
public void ReceiveCallback(IAsyncResult asyncResult)
{
ClientState cs = (ClientState)asyncResult.AsyncState;
try
{
int recvMsgSize = cs.ClntSock.EndReceive(asyncResult);
if (recvMsgSize > 0)
{
Console.WriteLine("Thread {0} ({1}) - ReceiveCallback(): received {2} bytes",
Thread.CurrentThread.GetHashCode(),
Thread.CurrentThread.ThreadState,
recvMsgSize);
cs.ClntSock.BeginSend(cs.BByteBuffer, 0, cs.BByteBuffer.Length, SocketFlags.None,
new AsyncCallback(SendCallback), cs);
}
else
{
cs.ClntSock.Close();
}
}
catch (SocketException se)
{
Console.WriteLine(se.ErrorCode + ": " + se.Message);
cs.ClntSock.Close();
}
}
我正在将 s1 字符串数组转换为字节数组并将其发送给客户端。这是一个服务器。所以在客户端我想将字节数组转换回字符串数组。 使用 Byte.Parse 我无法转换字符串 s2。那么如何将 s1 字符串数组和 s2 字符串数组转换为字节数组。
我想将字节数组转换回字符串数组并将结果输出到客户端。
它说在cs.ClntSock.BeginSend(cs.BByteBuffer, 0, cs.BByteBuffer.Length, SocketFlags.None,new AsyncCallback(SendCallback), cs);不能从字节[][]转换为字节[]
【问题讨论】:
标签: c#