Sending Byte Arrays Over TCP / IP?

Sep 15, 2014

I need to send a byte array across a network. I know how to do this. (server->client)

byte[] myArray = new byte[]{0,1,2,3,4,5,6,7,8,9};
DataOutputStream.write(myArray);

... and I know how to receive it.

byte[] myArray = new byte[10];
DataInputStream.read(myArray);

When I send over one of these arrays, it ends up stopping storing values in the array when only about half the array is received, even though the array is sent from the server all at once. This results in the receiver's array, in this case, being something like {1,2,3,4,0,0,0,0,0,0}.

I can easily solve this - and already have - by simply adding a loop onto it and waiting for the bytes to all be received, as the method returns the amount of bytes actually read.

byte[] myArray = new byte[10];
int bytesRead = 0;
while( bytesRead < myArray.length) {
bytesRead += DataInputStream.read( myArray, bytesRead, myArray.length - bytesRead );
}

I am simply wondering if there is a better solution to this, as the current solution isn't that elegant. Did I do something wrong to cause only a part of the array to be sent first? Would it be better to use DataInputStream.readByte() to read off the bytes one by one rather than an array at once, and then store them in an array afterward? Would this cause a performance decrease as each byte is read individually? (I'm sending an array of several million bytes)

View Replies


ADVERTISEMENT

Saving Picture From Byte Arrays Using Random Access File

Jul 12, 2014

I'm trying to save a picture from byte arrays using RandomAccessFile. The file appears but doesn't open (like its corrupted).

I'm using the bittorent protocol which gives a SHA-1 hash that I compare all the bytes with to verify the data. All the bytes pass the hash check and all the hashes are checked. So I'm pretty sure I'm getting all the bytes correctly.

Is there anything I can do that could tell what's going wrong?

public RUBTClient(final TorrentInfo2 tInfo, final String outFileName) {
...
this.outFileName = outFileName;
File destined = new File(outFileName);
try {
destined_file = new RandomAccessFile(destined, "rw");
destined_file.setLength(tInfo.file_length);
} catch (FileNotFoundException e1) {

[Code] .....

View Replies View Related

Sending To All Vs Sending To One Person In Server / Client Program

Apr 17, 2014

I have two programs that I'll post below, one is a Server and the other is a Client. The ChatServer runs once and many clients can run ChatClient from separate computers and talk together in their GUI's. The the client program comes with two buttons, one that's simulates the sending of a message to a single user ; "Send Message To User", and one that just generally sends a message ; "Send Message To All". Although now the Clients on the server seem to be able to selectively send messages to an individual by giving the recipient name, all the clients can see that message, which is not exact what I am aiming for. What I am going for is having the "Send Message To User" button click to send a message to the named user without all other users seeing the message.

The Server Program Code

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;

[Code] ....

Now I have tried thing like having various input output streams and trying to connect those, but no luck. Tried fiddling with having the names arraylist directing the messages to one client versus all but that did not work out either. How I what I would need to do to go about doing this?

View Replies View Related

What Is The Difference Between Regular Arrays And Multi Dimensional Arrays

Jun 28, 2014

I mainly would like to know is a int[4][4] or a int [4*4] is more efficient to use. Which takes more storage? Which requires more to process? that kind of stuff.

View Replies View Related

Using Byte Instead Of Int?

Jan 1, 2015

Is there an advantage in using byte instead of int beyond the space savings? In my program, I'll never need close to the max value of a byte, let alone int, so it seems like a waste to make my primitives ints.

View Replies View Related

Conversion From Int To Byte Errors

Jun 11, 2014

It's probably really obvious, like it usually is, but I can't figure out why I am getting these errors on multiple functions.

if (!client.lowMem) {
for (int l = this.onDemandFetcher.getVersionCount(2), i2 = 1; i2 < l; ++i2) {
if (this.onDemandFetcher.method569(i2)) {
this.onDemandFetcher.method563(1, 2, i2); //Error

[Code] ....

The error I get on this line of code is 'Custom may not have been initialized', but no matter what I do, the error sticks.

Custom.cacheIndex = (Custom.cacheIndex + 1) % 10;
final Custom Custom = Custom.cache[Custom.cacheIndex];
//^^^^^

View Replies View Related

Printing Original Byte

Nov 20, 2014

Why when I do this:

System.out.println((byte) 99);

I still get: 99 ... not the hex representation of the byte!!

Why is that?

View Replies View Related

Function To Know If Byte Is Powered On Or Not

Aug 30, 2014

I am trying to make a function to tell me how to know if a byte is powered on or not but it must be through a mask depending on the position you send.

bool estaEncendido(char byte,int pos)
{
// byte = byte<<(7-pos) ;
//byte = byte>>(pos+1);
int mask=1;
int result =1;
for(pos=0; pos<8; pos++, mask <<=1)

[Code] ....

In the main should have been as well

System.out.print(estaEncendido(5/*000000101*/,2/*00000100*/));
/*00000101 */
/*00000100 &*/
/*00000100*/This ignition

View Replies View Related

Byte Stream To String Conversion?

Apr 1, 2014

I am getting byte stream as below. These looks like UTF 8 bytes

3C524F4F543E3C535452494E473E54455354204F4E4C5920535452494E473C2F535452494E473E3C2F524F4F543E

I want java code which will convert above bytes to string as shown below

<ROOT><STRING>TEST ONLY STRING</STRING></ROOT>

View Replies View Related

Byte Array Negative Values

Mar 30, 2015

I am new to Android. I have byte array of size 10. I am passing the Decimal values (131 - 140) to byte array. But while printing I get Negative (-) values with decreasing order .

How can I get same value as positive values?

Or How can I store positive value e.g. 131 as byte array element.

Please not my requirement is array must be ByteArray only

View Replies View Related

Byte Array Sign Extend

Apr 27, 2015

I have a checksum function that is suppose to read IPV4 packet and return a short integer value. The IPV4 packets are stored in a byte array. I am having trouble storing the first 8 bits and second 8 bits of the short integer into the byte arrays especially when they have leading 1s. For example, if my checksum returns 5571 (binary = 0001 0101 1100 0011) The first 8 bits is suppose to represent 195 but when I try to assign a larger integer type to a btye the information gets sign extended. The 195 turns into -61. I tried using bit addition like array[10] = array[10] & 0xff, but the result remains the same.

public static short checksum(byte [] a, int length) {
short sum = 0;
long data;
int i = 0;
while(length > 1) {
data = (((a[i] << 8) & 0xff00) | ((a[i + 1]) & 0xff));
sum += data;

[code]....

View Replies View Related

Type Conversion In Expressions - Int To Byte

Feb 22, 2015

I am reading a book on Java and we are at a point where it is explaining type conversion in expressions. One of the examples shared has a byte being multiplied by itself and then assigned back to itself ...

byte b;
b = 10;
b = (byte) (b * b);

this is all good and dandy (that is, the code functions properly).

However, I am confused why I need to typecast here! Without the cast, the compiler screams, "Type mismatch: cannot convert from int to byte." Yet I haven't converted to an int?? It appears there was an implicit conversion.

The final value, 100, is clearly within byte's range of -127 to +127 isn't it? So I am lost as to what is the issue here.

View Replies View Related

Web Services :: Custom Class With Byte

Dec 23, 2014

I'm trying to create Web Services with Eclipse (Java Runtime 7 (also tried 8) Tomcat 7 (also tried 8).Web Service with parameter "byte[]" and return value "byte[]" works fine.Web Service with parameter "myOwnClass" and return value "myOwnClass" works also fine.But if I have a "byte[]" element in "myOwnClass" and I run my Client test program I get the following error:

AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.lang.NumberFormatException: For input string: "MTExMTExMTExMQ=="

Why? I don't have any numeric element (such as int ...) in my class members!?

View Replies View Related

Compile Error - Cannot Cast From Integer To Byte

May 29, 2014

I have a msg object that contains an ArrayList<Integer> collection. However, in order to send the elements in the array over the udp socket, it needs to be sent as a byte[] array. So why am I using ArrayList<Integer> over byte array in first place? Well when I receive data from socket from embedded c program, I need to get an unsigned representation of the data, and thus I need to store it in integers, since bytes in Java are unsigned and unsigned chars in c that are greater than 127 will yield incorrect values in java. But when I send an ack back over the socket, I need to send the data back as bytes. So I convert the ArrayList<Integer> to a byte array:

Java Code: byte[] data = msg.toByteArray();
DatagramPacket response = new DatagramPacket(data, data.length,
packet.getAddress(), packet.getPort());
public class Gprs {
...
public byte[] toByteArray(){

[Code] ....

The problem is I get an "Cannot cast from Integer to byte" when trying to cast the integer to byte: data[i] = (byte)m_data.get(i);

How can I resolve this?

View Replies View Related

Java Int Short And Byte Variables Are Same Thing?

Mar 15, 2015

okay so it says that java int short and byte variables are the same thing. They take whole numbers. But what is the point of byte and short to even exist if int covers it all? Is the short and byte just for fun?

View Replies View Related

Byte Array To String Gives Strange Characters

Jun 30, 2014

In this simple example, I print a byte array to String:

Java Code:

import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
public class PrintByteArray {
public void print(){
System.out.println(Charset.defaultCharset());
byte[] arr = {1, 2, 3, 4};

[Code] ....

However, Eclipse prints out strange boxes, which I was unable to copy into this message.

It's supposed to print out the values of the bytes. What am I doing wrong?

View Replies View Related

How To Convert Byte Array To Jpg File Using Java

Apr 30, 2014

i have I byte array ,That I was getting from the gps packets , I need to convert that into jpg file
  
public static void writejpegfile(byte[] someByteArray) throws FileNotFoundException, IOException {
FileOutputStream fos = new FileOutputStream("image" + new Date().getTime() + ".jpg")
try {

[Code]....

View Replies View Related

Assigning Int Literal To Byte Works But Not As Method Parameter

Apr 23, 2014

If you write

byte b = 100; it works (implicit conversion of implicit int literal 100 to byte.

But if you have a methodvoid bla(byte b){}

And want to invoke it with a literal (which is an int by default):bla(8) then there is no implicit conversion.

Is the byte b = 100; just an exception in Java? And is it the rule that one has to explicitely cast (narrow) integer literals when passing to smaller-than-int types?

View Replies View Related

Write Byte Array To BLOB Field In Database

Mar 2, 2014

I am trying to write a byte array to a blob field in my database.

Below code is not working for me because the object is actually 902 bytes, however, the database tells me that it is 11 bytes once committed.

How to write to the blob field in my database?

Java Code:

protected void addFingerprint(byte[] fingerprintBytes) {
Statement stat;
try
{
updateQuery = "UPDATE " + currentTable + " SET CLERK_FINGERPRINT_DATA_BLOB = '"

[Code] ....

View Replies View Related

Java Type Promotion Query - Int Cannot Be Assigned To Byte

Oct 14, 2014

I've a small question relating to type promotion I can't find an answer for on the web. Basically in your code if you have :

byte b = 0;
b = b + 1;

The compiler will complain about the result being an int which cannot be assigned to a byte. That I understand, as b on the right hand side of the expression is promoted to an int and the result of the addition is an int. However the following does compile :

byte b = 0;
b++;

Does the post increment not carry out the post increment as "give me the value of b and then add 1 to b" where I would have expected 'add 1 to b' to do the same integer promotion as the previous example ? The compiler will also allow the following

byte b = 0;
b += 1;

Again , why is no type promotion happening here ?

View Replies View Related

Parsing Multipart Message With Byte Array InputStream - Loosing Information?

Feb 20, 2014

I just wrote a small but working code to parse a multipart message with two files binary encoded.

Problem is, after splitting the content of the files is reduced to normal "alphabetic" digits, and i dont know why.

I just appended my source code and a test file ( multipart ). And the result of my parsing. (part_0 = json, part_1 = file, part_2 = file)

Unfortunately, i dont know, if the Spring FW provides an easier way of doing so at all. Haven't found it yet.

Java Code:

String requestUrl = "http://localhost:8888/";
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new ByteArrayHttpMessageConverter());
HttpEntity<String> entity = new HttpEntity<String>("test");
ResponseEntity<byte[]> response = restTemplate.exchange(requestUrl, HttpMethod.GET, entity, byte[].class);

[Code] .....

View Replies View Related

File System - Managing Secondary Memory Simulated As Byte Array In Java

Feb 11, 2014

I and a friend are working with a project to create a file system, who manages a secondary memory simulated as a byte array in Java. We want the file system to be a hierarchical tree structure like in UNIX.

We have come quite far, but the paths are not handled correct. I seem to have mistaken the relative folder ./ for the root folder, but it should mean "working directory folder", ie, where I stand now. That is, if I stand in /dir1 as my "working directory" and make mkdir ./dir2 then should dir2 end up as subfolder in dir1. But with me it appears in the root.

View Replies View Related

Sending XML To PHP Service Via POST

Jul 7, 2014

I have a server with a handful of php services. I communicate with these services by creating connections from java code. The services currently respond with XML, but that can be changed if an alternative way can improve performance.

One of the things I need to do is send varying sized payload (some large) to one of the services. My current plan is to create an xml file in java and perform a POST request with the XML as the payload. I am using an XML because the data is very structured.

From a performance point of view, would it be better to send the XML as a file or just as text? Also, is there a better way to send this data? These services will eventually be used by an android app, where performance and minimizing the size of the data packages will be extremely important.

View Replies View Related

Sending Two Strings Into A Constructor

Jun 13, 2014

I did this using ArrayList<String> and my tests worked. Meaning I was able to read the strings in a different class through my constructor. However I want to use a string array because it will be easier to handle when I finish the program. I will send each players poker hand in and figure out who is the winner instead of putting it all onto a ArrayList and having to iterate through it. However whenever I did my check I am just printing null.

PokerFile class

void separateHands(String cards) {
//ArrayList<String>playerOne = new ArrayList<String>();
//ArrayList<String>playerTwo = new ArrayList<String>();
String[] playerOne = new String[10];
String[] playerTwo = new String[10];
 
[Code] .....

ignore the boolean methods I was just building the structure of the program. The print file is what is outputting this:

null
null
null
null
null
null

public class WinningHand extends PokerFile {
//ArrayList<String> p1 = new ArrayList<String>();
//ArrayList<String> p2 = new ArrayList<String>();
String[] p1 = new String[6];
String[] p2 = new String[6];
WinningHand(String[] p1,String[] p2)

[Code] ....

View Replies View Related

Sending SMS Using SMSLib Using ProxyServer

Dec 23, 2014

New to SMSLib. I checked some samples and docs but did not get any ref/poc wherein I can send SMS with following set-up.

1. I want to send SMS from PC which is connected to internet in office network, where I am using proxy settings to connect to internet.(Basically office PC used in LAN environment)

2. I am not sure how to set the Modem settings in this scenario.

3. What i want - want to test SMS functionality in office environment and would like to send SMS to android based mobile using SMSLib library.

4. I have done SMSLib set-up on my PC and have all the required jars/dlls placed at proper location. So no issues related with set-up. Set-up is on windows platform.

5. I have written sample POC by referring some blogs/SMSLib docs. But as mentioned in points 1 and 2 above, am not getting how to write the code.

View Replies View Related

Exception While Sending Email

Dec 15, 2014

I am trying send email .So I have downloaded javaEE and javamail jar files and added buildpath.And wrote this code below .But I am getting this exception.

Exception in thread "main" java.lang.RuntimeException: javax.mail.AuthenticationFailedException: 534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbskV
534-5.7.14 ggcPi6MBZ4h8CCyCk2TG9EhiTGyE5MVBv7B3k7DsCldqjCuFvMTQG6aAbatrAWggH29muG
534-5.7.14 dzVh1kUYgMgNHAN558QRCnTjrNtUGv34Ul4pzUaansBuBfB0Kpz6_q7JTbrUuAmlZplouA
534-5.7.14 AHDXpFtuCkd-W17tHrZS5mqgVVxAcuKc-7TkhCDGShnfRBWU2R8v-gfvIQShszqsZmCl0i

[Code] .....

What am i missing here.

public static void main(String[] args) {
final String username = "mymail@gmail.com";
final String password = "mypass";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");

[Code] .....

View Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved