Improve company productivity with a Business Account.Sign Up

x
?
Solved

TCP socket connection Flex 3 - funny square returned.

Posted on 2009-05-07
2
Medium Priority
?
3,917 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
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

A proven path to a career in data science

At Springboard, we know how to get you a job in data science. With Springboard’s Data Science Career Track, you’ll master data science  with a curriculum built by industry experts. You’ll work on real projects, and get 1-on-1 mentorship from a data scientist.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

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…
WAP (Web Application Proxy) provides reverse proxy functionality for web applications in the corporate network which allows users on most devices to access internal web applications from external networks.
Watch the video of Kernel Migrator for SharePoint, which demonstrate the process easily of migration from SharePoint to SharePoint, OneDrive for Business & Google Drive servers, Public Folder to SharePoint, File Server to SharePoint. The tool has va…
Watch the video to know the process of migration of Exchange or Office 365 mailboxes in absence of MS Outlook. It is an eminent tool which can easily migrate Public, Archive user mailboxes from one another Exchange server and Office 365. Kernel Migr…

605 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