Protocol Design

Gliddador

Member
Joined
Jan 22, 2023
Messages
22
Programming Experience
5-10
I want to implement a chat server and a chat client (actually, more like an IM Server and Client perhaps) that communicates over TCP with SSL and Xml. In the Xml, I need to define a number of elements that will enable my applications to have a lot of features.(I don't plan to do video and audio calls yet.) My question is: Should I design the protocol before doing any coding? Or should I let my protocol evolve with the code? And what would be the best way to design a network protocol. Should I open up notepad++ and just play around with different element names and structures?

Thank you.
 
This doesn't seem like a C# specific question. Protocols typically are language agnostic (albeit some protocols are easier to handle in some languages vs. others).

Design while playing with UML Use Case and Data Flow diagrams. That will likely inform you of the types of interactions that you need to incorporate into your protocol. XML is meant to be extensible, so in theory, you can always add more stuff later (assuming that you write code that also takes into account XML's extensible nature).
 
This doesn't seem like a C# specific question. Protocols typically are language agnostic (albeit some protocols are easier to handle in some languages vs. others).

Design while playing with UML Use Case and Data Flow diagrams. That will likely inform you of the types of interactions that you need to incorporate into your protocol. XML is meant to be extensible, so in theory, you can always add more stuff later (assuming that you write code that also takes into account XML's extensible nature).

Sorry, I couldn't find a language agnostic forum here.

Thank you for your answer.

Can you recommend any good resources on UML Use Case and Data Flow diagrams. Thank you.
 
I personally thought that the UML Distilled books were great, but I also had a slight background on the pre-cursor of UML having been exposed to some of the Grady and/or Booch books in college.
 
Perhaps review the jabber protocol for some idea. If you build a jabber compatible client and server you'll acheive interoperation with existing other clients and servers, which might be useful experience for you
 
Thank you everyone for your answers. I am reading a book on UML 2 now (although not every day like I should). And I am considering using the jabber protocol. However, I may build other applications before the one I spoke of in this thread.
 
Back
Top Bottom