Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

TCP socket connection Flex 3 - funny square returned.

Posted on 2009-05-07
2
Medium Priority
?
3,911 Views
Last Modified: 2012-05-06
i'm busy fiddling around with flex as I've decided to do my next project in flex - just for fun.
i found some code on how to connect to a TCP socket .

it returns values like this
<?xml version="1.0"?>

<Msg xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <ACK fromSystem="blah" msgType="Connect" />

</Msg> <--- it has a square at the end of it. you can't really see it here
anyone have any idea why its doing that and what i have to do to get rid of it?


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
	<![CDATA[
		private var socket:Socket = new Socket();
 
		private function load():void{
			socket.connect('127.0.0.1', 8080);
        	socket.addEventListener(Event.CONNECT, connectedHandler);
			socket.addEventListener(ProgressEvent.SOCKET_DATA, inputDataHandler);
		}
		
	    private function inputDataHandler(event:ProgressEvent):void {
			var bytesLoaded:int = socket.bytesAvailable;
			var str:String = socket.readUTFBytes(socket.bytesAvailable);
			myT.text+=str;
	    }
 
    	private function connectedHandler(event:Event):void {
        	socket.writeUTFBytes("GET /sockets.html HTTP/1.0\n\n");
        	socket.flush();
	    }
	]]>
	</mx:Script>	
 
	<mx:Button click="load()" label="load"/>
	<mx:TextArea x="10" y="30" width="680" height="395" id="myT"/>
</mx:Application>

Open in new window

sample.bmp
0
Comment
Question by:blue-genie
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 20

Accepted Solution

by:
ChristoferDutz earned 2000 total points
ID: 24326278
Hi blue-genie,

Even if the Socket conneciton is a virtually permanent connection, it is still based on the packets of the TCP stack. It would be very imperformant to add every byte to a 50k packet. This is why flex buffers the data that will be output. In order to tell Flex to send the data, a "\0" termination-byte is added to the message. This tells Flex that the current message should be flushed.

On the server side there is another problem: In case of Xml this is no problem at all, but you could imagine sending raw byte data. How does the server know when a message is finished? This is where the "\0" byte comes into action. This byte is the one making your "readLine" return.

Is the byte really doing harm? If yes, you could just drop it or write a custom InputStream that drops it for you.
0
 
LVL 39

Author Closing Comment

by:blue-genie
ID: 31578980
so that's normal? hmm okay.
thanks for that information.
0

Featured Post

Understanding Web Applications

Without even knowing it, most of us are using web applications on a daily basis. Gmail and Yahoo email, Twitter, Facebook, and eBay are used by most of us daily—and they are web applications. We often confuse these web applications tools for websites.  So, what is the difference?

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

First things first - Preparation We need all the part for this install and it's much nicer to have them all on hand when you need them so here's what's required. Download Eclipse 3.5 32 bit (I like the Classic flavour) from here. (http://www.e…
Tech spooks aren't just for those who are tech savvy, it also happens to those of us running a business. Check out the top tech spooks for business owners.
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…
In this video, Percona Director of Solution Engineering Jon Tobin discusses the function and features of Percona Server for MongoDB. How Percona can help Percona can help you determine if Percona Server for MongoDB is the right solution for …

598 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question