Multiple OutputStreams to a single socket

Hi,
I searched the forums but could not find an answer for this.
I have a socket between a server and a client and am already using an output stream to send information via this output stream.
Now, I want to use another thread and another output stream to the same socket to send more data to the client. Is this possible? Are there synchronization problems or would the messages from both threads clutter each other in the socket? Is the multiplexing between the (text) messages from the 2 streams done in the lower layers of the TCP socket? Can I get away with using this or should I redesign my means of communication? I might also move towards object serialization in the future for my messages.
I wrote two sample programs and the result looks ok, but I want to check to see if there are no issues with this. The test client creates 3 threads that get different output streams from the same socket and then send their name to the server independently and randomly. The server receives text messages via the socket and prints them out. I do flush all me messages and only send text messages. From the output it looks like the messages are not clobbered and are received randomly. I also did the test without the randomness and saw no problems.
thanks,
Clive.
My server code:
import java.io.*;
import java.net.*;
public class EchoServer {
  public static void main(String[] args) throws IOException {
    Socket echoSocket = null;
    PrintWriter out = null;
    BufferedReader in = null;
    try {
      System.out.println("Starting server... ");
      ServerSocket serverSocket = new ServerSocket(60000);
      System.out.println("Waiting for client at 60000 ... ");
      echoSocket = serverSocket.accept();
      System.out.println("Connected to client at 60000");
      in = new BufferedReader(new InputStreamReader(
                                  echoSocket.getInputStream()));
    } catch (UnknownHostException e) {
      System.err.println("Don't know about host: " + e.getMessage());
      System.exit(1);
    } catch (IOException e) {
      System.err.println("Couldn't get I/O for "
                         + "the connection to: " + e.getMessage());
      System.exit(1);
    String userInput;
    while ((userInput = in.readLine()) != null) {
      System.out.println("echo: " + userInput);
    System.out.println("Closing the socket");
    in.close();
    echoSocket.close();
  } // main
}My client code:
import java.io.*;
import java.net.*;
import java.util.*;
public class EchoClient {
  public EchoClient() {
    Socket echoSocket = null;
    PrintWriter out1 = null;
    BufferedReader in = null;
    MyWriter thread1 = null;
    MyWriter thread2 = null;
    MyWriter thread3 = null;
    try {
      System.out.println("Connecting to localhost");
      echoSocket = new Socket("localhost", 60000);
      thread1 = new MyWriter(echoSocket, "name1");
      thread1.start();
      thread2 = new MyWriter(echoSocket, "name2");
      thread2.start();
      thread3 = new MyWriter(echoSocket, "name3");
      thread3.start();
    } catch (UnknownHostException e) {
      System.err.println("Don't know about host: " + e.getMessage());
      System.exit(1);
    } catch (IOException e) {
      System.err.println("Couldn't get I/O for "
                         + "the connection to: " + e.getMessage());
      System.exit(1);
  } // cons
  public class MyWriter extends Thread {
    PrintWriter out = null;
    String name;
    public  MyWriter(java.net.Socket socket, String name) {
      super(name);
      try {
        out = new PrintWriter(socket.getOutputStream(), true);
        this.name = name;
      } catch (IOException ioe) {
        System.err.println("Could not get output stream for " + name);
    public void run() {
      String userInput;
      Random r = new Random();
      boolean myTruth = true;
      try {
        while(myTruth) {
          out.println( this.name );
          System.out.println("sent " + this.name);
          Thread.sleep(r.nextInt(200));  // send the info randomly
      } catch(InterruptedException ie) {
        System.err.println("Could not wait for " + name);
      out.close();
  } // class MyWriter
  public static void main(String[] args) throws IOException {
    EchoClient echo = new EchoClient();
  } // main
}Server Output:
Connected to client at 60000
echo: name1
echo: name2
echo: name3
echo: name1
echo: name2
echo: name3
echo: name1
echo: name2
echo: name3
echo: name3
echo: name1
echo: name2
echo: name3
echo: name1
echo: name1

It is certainly doable, but you'll need to do some work here.
Probably what i would do is write a Multiplexor stream that sits on top of the raw tcp stream.
Implement this stream to implement synchronization such that only one client stream can write at a time. Further each stream should have a unique id associated with it, and registered with the base Multiplexor stream, so that when it writes into the down stream, it can prefix the data with its id. In that way the reader of the stream can see where to forward the data to.
If some other stream tries to write to the Base Multiplexor stream an exception should be thrown, since it hasn't registered itself.
There is a book by Manning that is pretty good in this area.
http://www.manning.com/Hughes/

Similar Messages

  • Multiple connections on a single socket simultaneously

    Hey everybody,
    Can a single socket on a client establish connections with different ports on a server at the same time?? I am awaiting for your replies.
    Thanks,
    Mani.

    No.

  • Transferring multiple files over a single socket

    I'm trying to send multiple files to a client without creating a new socket for each file and I'm undeceided on the best approach. The problem is that if the client is just reading from a socket, it won't know when one file stops and the next begins (assuming that the server side is just writing byte data to the socket). I could use an ObjectStream, but then I can't create a nifty progress bar. I could transfer the byte length of each file so that the client knows how much to read, but this seems messy. Is there a better approach?

    Method 1: send file length first. Simple way. Downside: if the file size changes on disk while you are sending it you may be in trouble - what if the file is truncated or there is an IO error so you can't send as many bytes as you promised.
    Method 2: use an end-of-file indicator. E.g. "." on a line by itself. If the file contains a "." on a line you'll need to quote it - e.g. the SMTP mail protocol uses "..", and "..." for two periods, etc. Needs a bit of extra code to do the quoting and detecting the EOF marker.
    Method 3: send "packets". Send a "packet header" followed by data, e.g.:
    HERECOMES C:\fred.txt
    DATA 1024 <...1024 bytes...>
    DATA 1024 <...1024 bytes...>
    DATA 120 <...last 120 bytes...>
    END OF FILE HAVE A NICE DAY
    You can make the "packet header commands" binary ('\001' = file begins, '\002' = data segment, ...) or sort of human readable like SMTP and HTTP do. The former can be a bit easier to implement, the latter is nice because you can debug it easier and try it out with "telnet".

  • How can I connect multiple clients to a single client ?

    I am currently developing an instant messaging program.I created a server and connected multiple clients to it by using thread logic.However I do not know how to connect multiple client to a single client.
    What shall I do for that?Does anybody know a good tutorial or sample program?Or shall anybody explain me what I shall do for building the Instant Messaging part of my chat program?
    Thank u in advance.

    You may use UDP multicast socket. But since you are using the UDP protocol you might risk losing the data that you send since UDP does not guarantee the safe transfer of data.
    Alternately, you might create a server that allows multiple client to connect to it whose connection Socket objects are then stored in a Vector <Socket> object. The server then sends back data to the connected client about the other clients connected to it. Now when the client wants to send data (like an IM) to another connected client, it has to send a request to the server specifying the client login name and the server in turn streams that particular client's Address and Port to the requesting client. The requesting client then initiates the connection with the other client and then starts a conversation. One more thing, when the client communicates it needs to send information to the server like the name by which it likes to be referenced. In this scenario the server acts like a central repository for clients to query the existence of other clients in the chat room. Each client here runs a thread that listens to incoming connections and when a connection is established, may be opens a IM window or something.
    The third option is to make the server to relay the information from one client to another. Like say, I'm connected to whoopy server and i want to send "Hello" to jackson, then i send the message (ie, Hello) along with the name of the client to which i wish to send it to (ie, jackson). The server then performs a lookup in its Vector <Socket> object and then initiates a connection with jackson and sends the information. However, this method is pretty costly in that you will be wasting a lot of processing behind the server.
    --Subhankar
    P.s. If you stumble upon any other brilliant ideas let me know.

  • Multiple selects() within a single VM

    Is anyone aware of any contention issues when running multiple threads within a VM where each thread has it's own select statement?
    I have an home grown app server that allows me to run multiple applications within a single VM. The applications are unrelated however they sometimes communicate with each other via TCP. All of them are very network intensive ( 500 messages a second where each message is around 200 bytes ). These apps are usually single threaded where the main thread is a select() loop.
    Therefore, each application is a single threaded select() loop but there are multiple applications running within a single VM.
    I am seeing performance issues when two apps running within the same VM try to send messages to one another via TCP. When the two apps are running on different boxes one app can send about 10,000 messages a second to the other app. However, when the apps are running within the same VM ( localhost TCP connection ) I can only transfer about 1000 messages a second.
    Are 2 selectors running within the same VM a problem? Is it synchronized within the VM so that only one select can fire at a time?
    I am running on a dual proc RH3 box with plenty of memory.
    Any ideas?

    Works for me, though I'm trying on Windows. Test program below. I get >10,000 replies and responses per second over loopback with both "java SelectPingPong both" (one VM) and running client and server on separate VMs.
    Does this program get only 1000 messages/s on Linux? What VM version?
    import java.util.*;
    import java.net.*;
    import java.io.*;
    import java.nio.*;
    import java.nio.channels.*;
    public class SelectPingPong
        private static final int MESSAGE_SIZE = 200;
        private String server_name;
        private Selector selector;
        private HashMap clients = new HashMap();
        static class Client
         ByteBuffer buf = ByteBuffer.allocate(MESSAGE_SIZE);
         long connect_time = System.currentTimeMillis();
         int number_of_messages;
        public SelectPingPong(int port, String server_name)
         throws IOException
         this.server_name = server_name;
         selector = Selector.open();
         ServerSocketChannel server_channel = ServerSocketChannel.open();
         server_channel.configureBlocking(false);
         server_channel.socket().bind(new InetSocketAddress(port));
         server_channel.register(selector, SelectionKey.OP_ACCEPT);
        public Socket connect(String host, int port)
         throws IOException
         SocketChannel channel = SocketChannel.open();
         Socket socket = channel.socket();
         socket.connect(new InetSocketAddress(host, port));
         configureSocket(socket);
         channel.configureBlocking(false);
         channel.register(selector, SelectionKey.OP_READ);
         clients.put(channel, new Client());
         return socket;
        private void configureSocket(Socket socket)
         throws IOException
         // Let's say we have a request-reply protocol with modest requirements
         socket.setReceiveBufferSize(1024);
         socket.setSendBufferSize(1024);
        public void mainLoop()
         while (true) {
             try {
              selector.select();
              for (Iterator iter = selector.selectedKeys().iterator(); iter.hasNext(); ) {
                  SelectionKey key = (SelectionKey) iter.next();
                  iter.remove();
                  if (!key.isValid())
                   continue;
                  if (key.isAcceptable())
                   acceptClient(key);
                  if (key.isReadable())
                   readFromClient(key);
             } catch (Exception e) {
              System.out.println(server_name + ": error in selector loop: " + e);
              e.printStackTrace();
        private void acceptClient(SelectionKey key)
         throws IOException
         ServerSocketChannel server_channel = (ServerSocketChannel) key.channel();
         if (server_channel == null)
             return;
         SocketChannel channel = server_channel.accept();
         if (channel == null)
             return;
         configureSocket(channel.socket());
         channel.configureBlocking(false);
         channel.register(selector, SelectionKey.OP_READ);
         clients.put(channel, new Client());
         System.out.println(server_name + ": got a new client; " +
                      clients.size() + " clients");
        private void readFromClient(SelectionKey key)
         throws IOException
         SocketChannel channel = (SocketChannel) key.channel();
         Client client = (Client) clients.get(channel);
         ByteBuffer buf = client.buf;
         int count;
         try {
             count = channel.read(buf);
         } catch (IOException e) {
             System.out.println(server_name + ": error reading, closing connection: " + e);
             clients.remove(channel);
             channel.close();
             return;
         if (count == -1) {
             clients.remove(channel);
             System.out.println(server_name + ": client disconnected; " +
                          clients.size() + " clients");
             channel.close();
             return;
         if (buf.position() == MESSAGE_SIZE) {
             if (++client.number_of_messages % 10000 == 0) {
              long now = System.currentTimeMillis();
              System.out.println(server_name + ": " + client.number_of_messages +
                           " messages in " + (now - client.connect_time) + " ms");
             buf.flip();
             // RFE write without blocking
             writeFully(channel, buf);
             buf.rewind();
        public static void writeFully(SocketChannel channel, ByteBuffer buf)
         throws IOException
         while (buf.remaining() != 0)
             channel.write(buf);
        private static void startClient()
         throws Exception
         SelectPingPong client = new SelectPingPong(6667, "client");
         Socket socket = client.connect("localhost", 6666);
         // Send initial message
         ByteBuffer buf = ByteBuffer.allocate(MESSAGE_SIZE);
         buf.put(new byte[MESSAGE_SIZE]);
         buf.flip();
         socket.getChannel().write(buf);
         client.mainLoop();
        public static void main(String args[])
         throws Exception
         if (args.length == 1 && args[0].equals("server")) {
             SelectPingPong server = new SelectPingPong(6666, "server");
             server.mainLoop();
         } else if (args.length == 1 && args[0].equals("client")) {
             startClient();
         } else if (args.length == 1 && args[0].equals("both")) {
             new Thread() { public void run() {
              try {
                  SelectPingPong server = new SelectPingPong(6666, "server");
                  server.mainLoop();
              } catch (Exception e) {
                  System.err.println("error in server");
             } }.start();
             startClient();
         } else {
             System.err.println("usage: SelectPingPong [client | server | both]");
    }

  • A single socket with a reader thread and a writer thread

    Could a socket handle reading and writing simultaneously? If it could, are there any impact?
    Thanks

    With a single socket, a client sent , for example, the first 10 IP packages and wait for the server acknowledge.TCP does that asynchronously from the application.
    If the server noticed that the 7th package was corrupted, then the client need to resend the 7th package.TCP does that asynchronously from the application.
    This could imply there were some idle times on both the client and server.Not at the client. TCP does all that asynchronously from the application. Data is written from the application into the socket send buffer and then the client continues execution. All the segmentation and packetization and acknowledgement and retry is asynchronous from the application. There is a delay at the server but's that's because all the data hasn't arrived, innit? so it's unavoidable. But in practice very few packets are lost and TCP runs at pretty much full speed all the time.
    You still haven't clarified whether you're talking about your code or TCP, but if you're not talking about what TCP does, you must be trying to build all this stuff into your application, which I've already spoken about as redundant at best and highly counter-productive at worst.
    If I open multiple sockets between the client and the server, these idle times would be minimize since the client , while waiting for the acknowledge, could send data to other sockets.This is fallacious for the reasons given above.

  • Can there be multiple ASM instances on single node?

    Hi,
    Can there be multiple ASM instances on single node?
    This one says No : http://www.freelists.org/archives/oracle-l/02-2008/msg00317.html
    And This one says Yes : http://www.databasejournal.com/features/oracle/article.php/3571371
    Thanks in advance.
    Thanks,
    Harsha
    Edited by: user498756 on Sep 11, 2008 2:23 AM

    ...that document doesnt say you cannot have multiple ASM instances on a node. It says "...ASM, +you only need one ASM+ instance for that computer, to manage the two database instances that use ASM."
    The fact that you only need one - and I cannot think of a good reason to have more than one - does not preclude the fact that you do seem to be able to have multiple ASM instances on a single node, each looking after its own set of disks and diskgroups.
    Again - I cannot think of a good reason to do so though!
    -Bob

  • How To Concatenate Column Values from Multiple Rows into a Single Column?

    How do I create a SQL query that will concatenate column values from multiple rows into a single column?
    Last First Code
    Lesand Danny 1
    Lesand Danny 2
    Lesand Danny 3
    Benedi Eric 7
    Benedi Eric 14
    Result should look like:
    Last First Codes
    Lesand Danny 1,2,3
    Benedi Eric 7,14
    Thanks,
    David Johnson

    Starting with Oracle 9i
    select last, first, substr(max(sys_connect_by_path(code,',')),2) codes
    from
    (select last, first, code, row_number() over(partition by last, first order by code) rn
    from a)
    connect by last = prior last and first = prior first and prior rn = rn -1
    start with rn = 1
    group by last, first
    LAST       FIRST      CODES                                                                                                                                                                                                  
    Lesand         Danny          1,2,3
    Benedi         Eric           7,14Regards
    Dmytro

  • Selecting data from Multiple Partitions in a single select stmt.

    Hi all,
    My Database is very large & my tables are partitioned.
    My question is:
    1) If my data is spread across multiple partitions, is there any way to select data from multiple partitions in a single query?
    If we dont mention partition name also it works fine, but perofmance wise it will be very slow. (Using EXPLAIN PLAN)
    (Note:I dont want to make use of Union concept, i want to do it in a single select statement)
    For ex:
    qry1.sql:
    select empno from emp_trans partition (P012000)
    This above query(qry1.sql) will work fine.
    qry2.sql:
    select empno from emp_trans partition (P012000,P022000)
    The above query(qry2.sql) will return will return the following error:
    ORA-00933: SQL command not properly ended
    If anybody has any solution for this, pls mail me immediately.
    Thanks in advance
    bye
    null

    All my queries are dynamically generated. All my tables are also indexed partition wise based on date field. My question is, if i want to mention multiple partition names at the time of generating my query(select), then with parformance will be good. I have refered some books, inthat what they say is to use UNION concept, i dont want to use that, instead i want in a single select statement.
    Thaks for ur reply
    Bye
    null

  • Passing multiple values for a single field in URL to call sap Transaction

    Hi All,
    I need to pass multiple values for a single field to SAP transaction .
    means if i have say a field "Date" which can contain more than one value, <b>but its not a range which has two fields</b> . How is it possible.
    Let me know pls.
    Regards,
    Sirisha.R.S.

    Hi Satyajit,
    I need to call a transaction with multiple values which gives me the report based on those values.
    So I need to pass multiple values for a single parameter.
    I hope u got it.
    Regards,
    Sirisha.R.S.

  • Any way to pass Multiple Values for a single Label in the Parameter?

    I have a Report that Contains 2 Parameters, @Customer & @Area. When trying to set up the Available Values for @Area, I'm having issues using multiple values for one Label, i.e. = "4006" Or "4610"
    One of the Filters in the Report is an Operation number, which is the [OPERATION] field, which is setup as a filter on the Tablix referencing the @Area parameter. 
    PROBLEM: I cannot retrieve any data when trying to use the ‘Or’ Operator here. If I simply put “4006” or “4610” I retrieve data, but when trying to combine it returns no data.
    Example, I need to allow a user to select ‘Chassis Incoming’, which would include data from Operations 4006 & 4610.
    QUESTION:
    Any way to pass Multiple Values for a single Label in the Parameter?
    I realize the typical solution may be to use ‘Multi-Value’ selection, but in this case we want the User to select the Area and the multiple values for Filtering will be automatically determined for them. Otherwise, they are subject to not getting
    it correct.
    I have tried several different ways, such as =”4006” Or “4610”, =(“4006”, “4610”), = In(“4006”, “4610”), etc….
    Note: We are using Report Builder 3.0

    Based on my experience, there's no way to 'intercept' the query that gets passed back to SQL Server, so a Split wouldn't work.
    Try creating either a function or stored procedure using the code below (compliments to
    http://www.dotnetspider.com/resources/4680-Parse-comma-separated-string-SQL.aspx) to parse the string: 
    CREATE FUNCTION dbo.Parse(@Array VARCHAR(1000), @Separator VARCHAR(10))
    RETURNS @ResultTable TABLE (ParseValue VARCHAR(100))AS
    BEGIN
    DECLARE @SeparatorPosition INT
    DECLARE @ArrayValue VARCHAR(1000)
    SET @Array = @Array + @Separator
    WHILE PATINDEX('%' + @Separator + '%' , @Array) <> 0
    BEGIN
    SELECT @SeparatorPosition = PATINDEX('%' + @Separator + '%', @Array)
    SELECT @ArrayValue = LEFT(@Array, @SeparatorPosition - 1)
    INSERT @ResultTable VALUES (CAST(@ArrayValue AS VARCHAR))
    SELECT @Array = STUFF(@Array, 1, @SeparatorPosition, '')
    END
    RETURN
    END
    Once created you can do things like this:
    SELECT * FROM Parse('John,Bill,David,Thomas', ',')
    SELECT * FROM (SELECT 'John' AS TestName union select 'David' AS TestName) AS Main
    WHERE TestName IN (SELECT ParseValue FROM dbo.Parse('John,Bill,David,Thomas', ','))
    This is what your SQL query would probably look like:
    SELECT OperationID, OperationName FROM dbo.Operations
    WHERE AreaID IN (SELECT ParseValue FROM dbo.Parse(@Area, ','))
    You may need to fiddle around with the Separator depending on whether SQL Server inserts a space between the comma and next value.

  • Multiple values in a single cell in report !!

    Hello,
    I want to display multiple values in a single cell, each value separated by comma.
    Ex: I have Employee and Department.
    If a employee works for many departments, all the Department names should be displayed in the same cell in the report.
    Please help !

    Thanks for your replies !
    Is there any other way to achieve this ?
    There is 1 InfoObject which has 2 fields Employee and Department.
    Employee     Department
    001                A
    001                B
    001                C
    In the report there should be 1 row for Employee 001 with all the Departments displayed in the same cell separated by commas.
    Can this be done in the backend through a ABAP code?

  • Multiple Excise Invoice for Single GRPO

    Hello All
    How do we create multiple excise invoices from a single GRPO document.
    Thanks
    Santhosh.K

    Hi
    As per the scenario you mentioned.
    You can't create multiple Excise Invoice against Single GRPO. And as per the law of excise also there is no way to do like this.
    Gate  Pass  made against delivery when some vendor send the item to the client. Time quantity and rate with the duties are mentioned in that.
    similarly when client received the material all the above should be there in the gate pass.
    Ashish Gupte

  • Passing multiple values to a single input parameter

    Hi folks,
    I have a Microstrategy query successfully passing input parameter to a calculation view.  For example I can pass a movement type to a material movements calculation view input parameter.  However if I try to pick more than one movement type the query then fails; 
    Generated SQL that works looks like this;
    select
    sum(a11.TOTALQUANTITY)  WJXBFS1
    from
    "_SYS_BIC"."MyPackage/CA_TEST_PASS_PARAMETER"
    ('PLACEHOLDER' = ('$$MoveType$$', '101')
    a11
    When choosing more than one value in Microstrategy the SQL now fails and looks like this;
    select
    sum(a11.TOTALQUANTITY)  WJXBFS1
    from
    "_SYS_BIC"."MyPackage/CA_TEST_PASS_PARAMETER"
    ('PLACEHOLDER' = ('$$MoveType$$', '101'),
    'PLACEHOLDER' = ('$$MoveType$$', '103'))
    a11
    If I cut and paste the SQL and run directly in HANA studio the error is;
    Could not execute 'select sum(a11.TOTALQUANTITY) WJXBFS1 from "_SYS_BIC"."MyPackage/CA_TEST_PASS_PARAMETER" ...' in 66 ms 361 µs .
    SAP DBTech JDBC: [2048]: column store error: search parameter error:  [2018] A received argument has an invalid value;TABLE/VIEW parameter: ( 'PLACEHOLDER'='$$MoveType$$, 103') not supported
    Is it possible to pass multiple values in a single parameter?  I'm using SP67 for this test.
    Thanks,
    -Patrick

    Ravi, also to answer one of your questions about how this will work in Microstrategy; I just heard back from my Microstrategy developer and he is trying MSTR Freeform SQL query with syntax like this;
    select (sumPAR_TEST.TOTALQUANTITY TOTALQUANTITY
    from "_SYS_BIC"."MyPackage/CA_TEST_PASS_PARAMETER"
    ('PLACEHOLDER' =('$$MoveType$$', '[Movement Type]')) PAR_TEST
    In this example [Movement Type] is the microstrategy prompt.  Unfortunately though it translates like this which is missing extra single quotes around each value;
    select     sum(PAR_TEST.TOTALQUANTITY)  TOTALQUANTITY
    from     "_SYS_BIC"."development.pr1959/CA_TEST_PASS_PARAMETER"
    ('PLACEHOLDER' = ('$$MoveType$$', ''101', '102''))   PAR_TEST
    instead of what we need which is;
    ('PLACEHOLDER' = ('$$MoveType$$', '''101'', ''102'''))   PAR_TEST
    So at this point we are not sure if this will be possible or not.
    -Patrick

  • Multiple users on a single iTunes account

    I am wondering if anyone knows how one will be able to manage multiple users under a single account under the new iOS5. Let me explain. In my house my wife and children download content ( movies, music, app) under my itunes log in so we can decide to watch the movie on my computer or my sons iphone without running into DRM issues. With the automatic syncing of pictures with iCloud I dont want my pictures and hers being mixed up but would like to each have an account. The problem is that I dont want to loose the ability of having the same DRM account for different itunes account. In other words, is there a way to associate a couple of me.com (icloud) emails / accounts to be associated with one itune store purchase account to be able to take advantage of sharing content with in the family. My apologies for the long winded question but I couldn't explain it any other way.:)
    Any insight is greatly appreciated. thanks

    This is from a MobileMe page, so it may not fully apply, but it suggests you'll be able to use separate accounts for iCloud and iTunes.
    http://www.apple.com/mobileme/transition.html
    If I use different accounts for iTunes and MobileMe, can I merge them into a single account and use it with iCloud?
    No. You cannot merge two accounts into one. However, you will be able to move your MobileMe account ([email protected]) to iCloud and, if you choose, you can continue to use a different iTunes account for store purchases and iTunes in the Cloud.

Maybe you are looking for

  • Volume bug

    hello I have a problem in my phone nokia lumia 520  ...when i try to raise or lower the volume appears to me I connected headphones and did not hear anything,and when someone calls me I hear the sound on the speaker .. and after I answer I can't hear

  • Negative values in Bar chart

    Hi, I have to plot negative values in a horizontal bar chart. Only the +ve values of the data column comes up in  the bars, How should i modify the xsl code Thanks in advance Krishna

  • How to remove all files in a directory in java?

    I have tried method delete() of File , but no effect! can anyone help me! thank you

  • How do you fix incorrect date fields in excel?

    They appear incorrect in the viewer from and email attachment.  They should read 05/01/2012  (MM/DD/YYYY)but when you view it, they are a ##### digit number. When viewing the report in a full excel version, the dates are correct.   How  do we fix the

  • RAC - Interconnect traffic

    In the client place the architecture team wants to implement a a node RAC cluster on Sun Solaris on Oracle 10g. But in order to minimize the interconnect traffic they want applications to connect only to one node and the other node will provide fail