- Home /
How to properly send data over TcpClient?
Why NetworkStream.write sends bytearray as integers one integer at a time? Currently I'm using TcpClient() that connects to java server using the following code.
private function ThreadListener(){
client = new TcpClient();
var port = 16304;
try{
client.Connect(IPEndPoint(IPAddress.Parse("127.0.0.1"), port));
ns = client.GetStream();
var data = new byte[1024];
var waitCounter = 0;
var read = 0;
while(running){
do{
try{
read = ns.Read(data, 0, data.Length);
var word = System.Text.Encoding.ASCII.GetString(data, 0, read);
Action(word);
}
catch(err){
print(err.Message);
}
} while(ns.CanRead);
}
}
catch (InvOpEx : InvalidOperationException) {
Debug.Log("TCP exception: " + InvOpEx.Message);
}
catch (SockEx : SocketException) {
Debug.Log("Socket exception: " + SockEx.Message);
}
finally {
if(ns != null)
ns.Close();
client.Close();
}
}
After that's done I can send data over that NetworkStream ns. But the problem in the following:
static function SendData(data : String){
var bytes : byte[] = System.Text.Encoding.ASCII.GetBytes(data);
if(ns.CanWrite){
ns.Write(bytes, 0, bytes.Length);
}
}
is that when I transform that string into a byte array and receive it on the server side (Java) using InputStream, it only gets the sent data one byte at a time, and it receives the data in Integer format.
Your answer
Follow this Question
Related Questions
Can I connect to a server using the IP adress and the port with the new Unity 5 Networking API?? 0 Answers
Is it possible to send whole bytearray at once? JS 0 Answers
UnityScript not recognizing NetworkServer "Unknown Identifier" 0 Answers
Connection to a registered host not working 1 Answer
pull ip address of computer 2 Answers