Jump to content
  • Advertisement

Taylor Softs

Member
  • Content Count

    15
  • Joined

  • Last visited

Community Reputation

146 Neutral

About Taylor Softs

  • Rank
    Member
  1. Taylor Softs

    What About your compressed Audio Format?

      No, that's not the case.  UDP is just a connectionless, unreliable protocol, so you can send a single packet to a destination IP address/port and you don't need to be connected to it, and you won't know if it gets there using UDP by itself.  TCP is a connection oriented streaming protocol, so it requires 2 IP addresses to connect, and the data sent is streamed and guaranteed to get there in the order sent.   Both TCP and UDP can be used with peer-to-peer, and both can be used for client/server.  Typically a game will include both TCP (for sending those must have data pieces ), and UDP (for sending the often updated states of players).   In your case, since you're doing interactive audio, you might want to use UDP since it will decrease communication time to/from others.  If you happen to drop a packet myou'll get a blip in the audio, but the other guy can just say, "What was that?" you know i'll not use the same work as Skype, Skype for example they use a direct connection using UDP Hole Punching you can connect to a specifc port behind router so you don't need to forward port in your router and this is not safe in a chat room    i agree with UDP you can lose some Pakcet it's not guaranted...i'll allow UDP hole punching between friends (i mean if you have this user in your friend list)
  2. Taylor Softs

    What About your compressed Audio Format?

    No. Client/Server vs Peer-to-peer is a topology; TCP vs UDP is a protocol. That's a pretty basic networking fundamental, so my guess is you're not particuarly well versed in how to run a networking-based business. What value are you adding to your customers by starting this business, that existing solutions like Webex or Google Hangouts or Skype or Zoom don't already give them (for cheap or free)?   I know the TCP and UDP are two different protocol   Client/Server Clients are connected via server and a direct connection between users is not allowed...Client/Server is safe for users and you know why...   I'm a Network programmer and not business manager i'll ask my team about your question if they know how to run a business or not lol   Free or payed it's not my work...my work is to write some code in a company called NadTalk
  3. Taylor Softs

    What About your compressed Audio Format?

    if i'm correct UDP is when you use peer to peer architecture...in my case i'll use a client/server architecture so i think TCP is great in this case no?   i'll check this codec (Opus Codec)    Opus is a lossy audio coding format developed by Xiph and standardized by the IETF, designed to efficiently code speech and general audio in a single format, while remaining low-latency enough for real-time interactive communication and low-complexity enough for low end ARM3 processors   Anyway Thank you mate
  4. Hello everyone,   i'm going to launch a small business based on client/server chat(text,audio and video)   in the past i have released two or three application based on audio compression manager(ACM by microsoft) using their api, the formats used was Truespeech from DSP group,Speex...now i'm planning to use GSM 6.10 in my new project   Please can you talk here about your experience with audio streaming over tcp network and what is the best format for you and why   Thank you Taylor  
  5. Taylor Softs

    IOCP mechanism issue disconnect

    i think it's my router can't handle more than 2100 connections because when i'm playing on localhost it's work just fine
  6. Taylor Softs

    IOCP mechanism issue disconnect

    i've disabled the Half TCP Connection on the registry   yes i'm very sure i got a notification for every new connection   for more information i use AcceptEx just to notifity me when there is a new connection and not to wait data (to avoid Denial of Service Attack)
  7. I've created a server using IOCP mechanism to handle a thousand of Clients Socket. So i Stress the server with 2000 connection, i send data to the server every 1 second, length of packet is 2048 bytes, the server work just fine and when i close sockets on the client all sockets are closed on the server When i stress the server using 2500 or more, Send and receive data work very well but when i close sockets on the client, i got only 2040 closed Sockets on the server and the iocp will never send the notification to close the rest of sockets for more information i use AcceptEx to accept a new connection, the same issue with accept using Select Events methods i'm using Zero Byte Read to avoid WSANOBUFS but same issue i hope i found some one here with the same problem as me i test the server on windows Seven 64 bit CPU : i7 4790K RAM : 16 GO IDE : Visual C++ 2013 Language C++
  8. Taylor Softs

    MySQL server vs Microsoft sql server

    i agree but in my question i'm talking about the algorithm used in the engine database server wich one get the best result speed when you request something from the table   for example if we have two databases and for every database we have 10 tables and every table size can up to 10Mo maybe more   Mysql Server vs Microsoft Sql server :   Size Compression file for example Speed response for a request Stored Procedure (for example in Microsoft Sql Server we can prepare a list of procedures and we can execute them without sending request everytime to the server)
  9. Hi everyone For me i have worked on Microsoft sql server and it was good for me So what is the best database engine server for you and why you choose it Thank you for your participation
  10. Taylor Softs

    What about Load Balancer

    in your schematic design the slave servers talk to each others directly or via Load Balancing server
  11. Taylor Softs

    What about Load Balancer

        If master server spins up a new slave server, how do the other slave servers know about it?  Suppose Client 1 connected to Slave Server A.  Then 100K more players joined in, and Client 2 joins, Master Server decides to spin up a new Slave Server B with a different ip address and reroute Client 2 to Slave Server B.  Now Client 1 wants to send a message to Client 2, how do you suppose Slave Server A knows where Slave Server B is?   That's just using 2 servers as an example.  Theoretically, you can have N Slave Servers.  How does one Slave Server know that Client X is connected to Slave Server Y, without pinging all Slave Servers "Is X connected to you guys?".  There's also a possibility that X is disconnected, and reconnect back to a completely different Slave Server.     Hello alnite, thank you for your participation    when the master server will spawn a new instance of my Slave Server :   so client 1 connected to slave server 1 send a message to client 2 connected in x slave server in this case : the server slave 1 will send a request to the database to retrieve the IP address of the client 2 by his unique User Name of course there are three possible cases   case 1 : if the slave server x is shutdown(Not connected) then the slave server 1 will check the client 1 if he is not in the black list of the client 2 if not then he send a  request to the database to add an offline message to the client 2   case 2 : the slave server x can't find the client in his map user list, then the x slave server will send a notification to the slave server 1 that the client 2 is not available and the x slave server will send a request to the database to add an offline message to the client 2 if the client 1 is not in his black list    case 3 : the slave server x can find the client 2 first he will check if the client 1 is not in the black list of the client 2 if no he will send the message if yes then he will stop the request of the slave server 1   Ps : i'm sorry for my english
  12. Taylor Softs

    What about Load Balancer

    How many clients it depend on the slave server hardware configuration maybe 60k for each slave server i can execute many instance of my server slave i just give an example of 3 servers For example if the master server can't find a (place) in slave servers then he will execute another instance of a slave server in another machine To be more clear master server his job is To "redirect" clients to one of the slave servers...
  13. Hello everyone   i'll start to work on a big project (Client/Server) and i'll try to implement a soft load balancer i mean i'll make a Master server and a Slave Server   The load Balancer server(master server) will split clients to server 1,server2 or server 3     and if a client A connected on server 1 want to send a data to a client B connected on server 2 or 3 there is one scenario :   when the server 1 receive the packet from the client A he will check if the client B is Online if yes he will fetch the IP Server on which this client B is connected and the server 1 will send the data to the server 3 and the server 3 will send this data to client B   The question is : i don't know if this mechanism has a good performance or not   This network can handle more than 500 000 Connection at the same time   Ps : i'll use IOCP(Input Ouput Completion Port)
  14. Taylor Softs

    IOCP shutdown design

    Hi  sorry for my english   you need to understand something about multi-threading to handle multiple socket at the same time   CRITICAL_SECTION is needed in your case to synchronous your thread or you will get Access violation when you try to access a handle of a closed socket   all right but the problem is not solved   you need to add some boolean variable called bShutDownServer like this   EnterCriticalSection(&g_Cr);  closesocket(yoursocket);  bShutDownServer = TRUE; // if you are not in MFC just use true LeaveCriticalSection(&g_Cr);   in the loop of your handler accept   you need to do the same thing EnterCriticalSection(&g_Cr);    //safe thread here    if (!bShutDownServer)      AcceptEx(...);  else   {     //Set your socket to INVALID_SOCKET    // cleans everything to avoid memory leaks and call your destructor class after you leave the critical section   }          LeaveCriticalSection(&g_Cr);   PS : i use SlimReadWriter(SRW) instead of CRITICAL_SECTION because the first one is more fast in the kernel level synchronisation (Source : Book Windows Via c++ Jeffrey richter) 
  15. Taylor Softs

    IOCP critical section design problem

    You need to use thread synchronization using SLIM_READ_WRITE structure it is faster than critical_section structure according to (Jeffrey richter and Christophe Nassare in the book Windows VIA C++ page 224)   Example : SRWLOCK g_srwMapUsers; AcquireSRWLockExclusive(&g_srwMapUser);  // lock the resource if antother worker thread try to enter this section of code                                                                          // he will be in a wait state and your thread will be in safe    // do some instructions to access a shared resource ReleaseSRWLockExclusive(&g_srwMap);      // release the resource and wake up another thread if there is a thread in a wait state!!!!
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!