Author | Message | Time |
---|---|---|
Elneroth | Didn't take me very long to write this, so if you find anything invalid or bad, please tell me so I can edit it out. I tried to make this as most understanding as I could for beginners to learn Battle.net Packets. Microsoft Word Document format can be found Here: http://www.insanedev.net/chaos/BNETPIntro.zip -------------------------------------------------------------------------------------------------------------------------------------------------------- Introduction to Battle.net Packets By: Galdunn (Andrew K.) A step-by-step guide to reading sent/received packets from Battle.net/Battle.net clients. Table of Contents: Section 1: Hexadecimal Coding Section 2: Battle.net Packet Formats Section 3: BNCS (Battle.net Chat Server) Packet Format Section 4: Realm Packet Format Special Thanks To BNETDocs, for providing all the information you’ll basically ever need for a successful Battle.net connection emulation. BNETDocs information was used throughout this guide for packet information references. I coded a handy tool for Converting to/from HEX format. It can be found, here: http://www.edevs.org Look under the Software Releases download section, under Programming Tools. Section 1 (Hexadecimal Coding) ---------------------------------------------------------------------------- Before you can start jumping into Battle.net packets, you need to know Hexadecimal Coding. Dictionary.com’s definition of Hexadecimal Coding: [code]A number representation using the digits 0-9, with their usual meaning, plus the letters A-F (or a-f) to represent hexadecimal digits with values of (decimal) 10 to 15. The right-most digit counts ones, the next counts multiples of 16, then 16^2 = 256, etc.[/code] In my own words, Hexadecimal Coding is a way to express data in a numeric form. This form includes the number’s 0 to 9, and the letters A to F. Here’s the basic memory types you need to know. BYTE Example(00): 8 bit unsigned integer WORD Example(00 00): 16 bit unsigned integer DWORD Example(00 00 00 00): 32 bit unsigned integer STRING Example(39 47 38 27 17 39 00): Strings are always ended with 00, also known as “Null Terminated". Note: Some users like to express hex values in the format “0x##”. Example, the byte 00 would be expressed as 0x00. Another example, the byte 34 would be expressed as 0x34. There are certain ways to convert between strings and hexadecimal coding. I’ll provide two functions to do so. Here’s a function I wrote to convert from String to HEX: [code]Public Function ToHex(ByVal strString As String) As String Dim A&, strOut$, strC$ For A = 1 To Len(strString) If Len(Hex(Asc(Mid(strString, A, 1)))) = 1 Then strOut = strOut & " " & "0" & Hex(Asc(Mid(strString, A, 1))) Else strOut = strOut & " " & Hex(Asc(Mid(strString, A, 1))) End If Next A ToHex = strOut End Function[/code] What this function does is goes through every single character of a string, get’s the ASCII value of it, then converts it to HEX using Visual Basic’s Hex() function. If the length of the HEX value of the ASCII value is only 1, it adds a 0 before it to make it valid. (Byte) This function does take quite a bit of lag to execute, so I wouldn’t suggest using this very often. Here’s a function I wrote to convert from HEX to String formats. [code]Public Function ToStr(ByVal strString As String) As String strString = Replace(strString, " ", "") Dim A&, strOut$, strC$ For A = 1 To Len(strString) Step 2 strOut = strOut & Chr(Val("&H" & Mid(strString, A, 2))) Next A ToStr = strOut End Function[/code] This function goes through every byte of a hex string, gets the character value of it, and returns a full line in String format. This also is a bit laggy to execute, so I also wouldn’t suggest using this very often. Section 2: (Battle.net Packet Formats) ---------------------------------------------------------------------------- Battle.net is split into a few different type of packet formats. Some types are: BNCS (Battle.net Chat Server) Realm (Diablo 2 Realm Servers) I will only be explaining these two formats during this guide. Section 3: (BNCS: Battle.net Chat Server) ---------------------------------------------------------------------------- All BNCS packets are composed of a Header and following data. The header is the beginning of every packet. The header format for BNCS is like this. (Byte) FF – Always FF, to identify it’s a BNCS packet. (Byte) 36 – Packet ID – Provides an ID associated to what the packet’s purpose is. (Word) 09 00– Packet Length – Provides the length of what the entire packet should be. All following data after the Header is information provided by the server. Here is an example packet. This is how most data, converted to hex, will look to the viewer. [code]FF 0A 49 00 47 61 6C 64 75 6E 6E 00 50 58 32 44 55 53 45 61 73 74 2C 47 61 6C 64 75 6E 6E 2C 84 80 FF FF FF FF FF FF FF FF FF FF FF 04 FF FF FF FF FF FF FF FF FF FF FF 57 E8 9E FF FF 02 FF FF 00 47 61 6C 64 75 6E 6E 00[/code] FF 0A 49 00 – BNCS Header (As stated before, always in the beginning of the packet.) (Byte) FF = Always FF, as mentioned before. (Byte) 0A = Packet ID. In this case, 0A (or 0x0A), would signify the client that it’s the packet sent after complete successful login. (Word) 49 00 – Packet Length Most packet information can be found @ http://bnetdocs.valhallalegends.com/content.php thanks to ValhallaLegends for providing it. The packet information for this packet is the following. (From BNETDocs): (STRING) Unique Username (STRING) Statstring (STRING) Account name This explains the data following the header. Here’s the packet again. (Without the header) [code]47 61 6C 64 75 6E 6E 00 50 58 32 44 55 53 45 61 73 74 2C 47 61 6C 64 75 6E 6E 2C 84 80 FF FF FF FF FF FF FF FF FF FF FF 04 FF FF FF FF FF FF FF FF FF FF FF 57 E8 9E FF FF 02 FF FF 00 47 61 6C 64 75 6E 6E 00[/code] If you take a look at BNETDoc’s packet information, it shows the sequence of data inside the packet. It starts with a Unique Username string, a Statstring string, then ends with an Account Name string. As noted earlier, all strings end with 00, also known as Null Termination. Now, let’s split this packet up according to the Nulls (00’s). [code]47 61 6C 64 75 6E 6E – (First String) – Unique Username 00 50 58 32 44 55 53 45 61 73 74 2C 47 61 6C 64 75 6E 6E 2C 84 80 FF FF FF FF FF FF FF FF FF FF FF 04 FF FF FF FF FF FF FF FF FF FF FF 57 E8 9E FF FF 02 FF FF – (Second String) - Statstring 00 47 61 6C 64 75 6E 6E – (Third String) - Username 00[/code] The first split, 47 61 6C 64 75 6E 6E, should be the Unique Username string. Let’s use the function I made before to convert it to string value to see if that’s true! I received the string value “Galdunn” from the conversion. This indeed does support BNETDocs information regarding this packet! (Like most of them) Apparantly, 47 61 6C 64 75 6E 6E is Galdunn in hex format. Let’s take a look at the second string, 50 58 32 44 55 53 45 61 73 74 2C 47 61 6C 64 75 6E 6E 2C 84 80 FF FF FF FF FF FF FF FF FF FF FF 04 FF FF FF FF FF FF FF FF FF FF FF 57 E8 9E FF FF 02 FF FF. This string contains your Statstring. This is a complex string and contains some values even I don’t know what they’re for yet. (That’s where research comes into play!) Let’s convert this string with that nifty function now! I received the following: PX2DUSEast,Galdunn,„€˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙Wč˛˙˙ ˙˙ Pretty weird, eh? Well, as far as I can see from this string, it contains a backward product ID PX2D, which is D2XP in the right order. This stands for Diablo 2: Lord of Destruction. The second thing I can see is ‘USEast’, this is the name of the server realm I’m connected to. The third thing I can see is Galdunn, which is my username. This is the same as above. I myself do not know what the rest of this string represents, and so far, I don’t really need to There are certain things in some packets you can ignore, while in others, you risk the possibility of getting IP Banned if you mess up a single value. Let’s take a look at the third string now, 47 61 6C 64 75 6E 6E, as I can see, this is the same hex string as the first string, the Unique User ID, so it’s safe to skip the converting part and just assume it’s “Galdunn”. This is also correct, assuming my account login name was Galdunn. Congradulations. You’ve just learned your first Battle.net Packet! Please take some time to Packet Log any battle.net client (I suggest Starcraft as a start), get the packet ID to each one (as taught above), and look it up according to http://www.bnetdocs.valhallalegends.com ‘s information. Try and see how many packets you can parse (decode). Let’s now move on to Realm Packets. Section 4: (Realm Packet Format) ---------------------------------------------------------------------------- Realm packets are very similar to BNCS packets, yet they lack similarity in one field, the Header. Realm packet headers always start with the packet length (Word). Following the packet length value, comes the message id (Byte). These are the only two values in Realm Headers, the rest of the packet is all data following the header. Let’s take a look at an example Realm Packet, this time we’ll start out with a fairly simple packet. 07 00 01 00 00 00 00 07 00 – Packet Length 01 – Packet ID Here’s the packet without the header. 00 00 00 00 Here’s the format to this packet, according to BNETDocs. (DWORD) Result In DWORD results, such as this one, there are usually many values it can return. Each different value signifies a different message, pre-determined. According to BNETDocs, here are the possible results for this packet. 0x00: Success 0x0C: No Battle.net connection detected Now we know that this packet returned the value, “Success”, since the result was 00 00 00 00, and BNETDocs says that the 00 00 00 00 value signifies “Success”. -------------------------------------------------------------------------------------------------------------------------------------------------------- Congratulations again! You’ve finished reading my tutorial on how to read Battle.net packets! From here on, I would suggest practicing your skills in packet logging connections and trying to figure out at your best what each packet does. If you need any help decoding a packet, try the Battle.net Bot Development forums. Note: PLEASE MAKE SURE YOU NO FOR CERTAIN IT HAS NOT ALREADY BEEN ANSWERED BEFORE YOU MAKE A NEW POST Members of this forum hate it when they have to answer a question more than once! | July 9, 2005, 8:20 AM |
Elneroth | Sorry, is this supposed to go in the References forums? I can't delete it then move it, it's not letting me. I'll leave it to a mod if it really needs to be moved. | July 9, 2005, 8:48 AM |
Myndfyr | [quote author=Elneroth link=topic=12151.msg119796#msg119796 date=1120898935] Sorry, is this supposed to go in the References forums? I can't delete it then move it, it's not letting me. I'll leave it to a mod if it really needs to be moved. [/quote] Spht and I will talk about it. In the meantime, thank you for not double-posting. | July 9, 2005, 2:53 PM |
R.a.B.B.i.T | [quote]n my own words, Hexadecimal Coding is a way to express data in a numeric form. This form includes the number’s 0 to 9, and the letters A to F.[/quote]Hex is a number base, not a code. It is also not way "way to express data in a numeric form", it's just a number base. String are actually a way of expressing numbers in such a way that they can be translated into languages. | July 9, 2005, 3:20 PM |
shadypalm88 | I think this is a useful document. I'm in the process of converting it to HTML format and editing it to add more background information. You can see how it's coming along at this site. Comments, suggestions, and corrections are welcome. | July 9, 2005, 6:41 PM |
Insolence | I read it, seems pretty decent. Although I'd REALLY like a tutorial on how to connect to b.net via C# :) | July 9, 2005, 10:02 PM |
Networks | [quote author=Insolence link=topic=12151.msg119877#msg119877 date=1120946563] I read it, seems pretty decent. Although I'd REALLY like a tutorial on how to connect to b.net via C# :) [/quote] It's called MSDN or Google! | July 9, 2005, 10:44 PM |
Insolence | [quote author=Networks link=topic=12151.msg119881#msg119881 date=1120949084] [quote author=Insolence link=topic=12151.msg119877#msg119877 date=1120946563] I read it, seems pretty decent. Although I'd REALLY like a tutorial on how to connect to b.net via C# :) [/quote] It's called MSDN or Google! [/quote]You're a wealth of information. | July 9, 2005, 10:51 PM |
Quarantine | Don't know if that was sarcastic or not, I'd imagine the same way you'd do it for any other language? Connect Send/Recieve data in a special order in thier special format and BAM you're connected. Of course I'm being extremely broad here. | July 9, 2005, 11:07 PM |
R.a.B.B.i.T | [quote author=shadypalm88 link=topic=12151.msg119847#msg119847 date=1120934478] I think this is a useful document. I'm in the process of converting it to HTML format and editing it to add more background information. You can see how it's coming along at this site. Comments, suggestions, and corrections are welcome. [/quote]You're part about xWORDS is incorrect. The size of a WORD depends on the system. The size you have them listed as is for a 16-bit system, which is probably not used anymore. You should fix that. Also, you just blurt out ASCII with no reference or description of what it is (which is the nature of the document) | July 9, 2005, 11:29 PM |
Kp | [quote author=Insolence link=topic=12151.msg119882#msg119882 date=1120949503][quote author=Networks link=topic=12151.msg119881#msg119881 date=1120949084][quote author=Insolence link=topic=12151.msg119877#msg119877 date=1120946563]I read it, seems pretty decent.Although I'd REALLY like a tutorial on how to connect to b.net via C# :)[/quote]It's called MSDN or Google![/quote]You're a wealth of information.[/quote] Your insolence toward more senior members will not be tolerated much longer. | July 9, 2005, 11:29 PM |
shadypalm88 | [quote author=rabbit link=topic=12151.msg119897#msg119897 date=1120951751] [quote author=shadypalm88 link=topic=12151.msg119847#msg119847 date=1120934478] I think this is a useful document. I'm in the process of converting it to HTML format and editing it to add more background information. You can see how it's coming along at this site. Comments, suggestions, and corrections are welcome. [/quote]You're part about xWORDS is incorrect. The size of a WORD depends on the system. The size you have them listed as is for a 16-bit system, which is probably not used anymore. You should fix that.[/quote]True, but that's the convention normally used here. I should probably explain that better. [quote author=rabbit link=topic=12151.msg119897#msg119897 date=1120951751]Also, you just blurt out ASCII with no reference or description of what it is (which is the nature of the document) [/quote]Where do I do that? I do explain that it's a character encoding, and what that is; I'm not sure what else you mean. | July 10, 2005, 1:09 AM |
LivedKrad | [quote author=Kp link=topic=12151.msg119898#msg119898 date=1120951799] [quote author=Insolence link=topic=12151.msg119882#msg119882 date=1120949503][quote author=Networks link=topic=12151.msg119881#msg119881 date=1120949084][quote author=Insolence link=topic=12151.msg119877#msg119877 date=1120946563]I read it, seems pretty decent.Although I'd REALLY like a tutorial on how to connect to b.net via C# :)[/quote]It's called MSDN or Google![/quote]You're a wealth of information.[/quote] Your insolence toward more senior members will not be tolerated much longer. [/quote] Boss man's comin' down on you. Long time no speak, Kp! To stay on topic, I think it's a nicely done document, and I look forward to shadypalm's editing and republishing. Who knows, if acceptable it may appear on BnetDocs! | July 10, 2005, 1:47 AM |
Archangel | Nice documentation ;), i read it and its understandable. [Opinion/Question] Why do people always answer "Google"? its better to give usefull links to the documentation, that way this forum will just not have google links. | July 10, 2005, 2:19 AM |
LivedKrad | Why waste your own time looking up a page that is probably within the top ten results of Google.com for someone else? That not only puts a burden on you, but makes the person lazy and dependent. | July 10, 2005, 2:33 AM |
shout | [quote author=Archangel link=topic=12151.msg119929#msg119929 date=1120961968] Why do people always answer "Google"? its better to give usefull links to the documentation, that way this forum will just not have google links. [/quote] Google holds links to most, if not all, of the worlds information. | July 10, 2005, 2:35 AM |
Lenny | Perhaps that's true, but google only returns the information you want based on the information you put into it. You're really not doing any good at all by simply referring someone to google. It would be better if you referred someone to google with AT LEAST a proper query. Don't you find that google returns much better content when you know something about what you're searching for? I see those of you that refer users to google and nothing more incapable of correctly answering the question yourself. | July 10, 2005, 2:54 AM |
Kp | OK, since this is deteriorating rapidly: If you can't give an answer other than "search the 'Net", just don't say anything at all. That way, the original poster will wait for days and never get any responses. :) IMO, this is far better than telling them to search for the content, as they will usually take it out on the regulars if you respond at all. Just treat stupid questions like trolls. | July 10, 2005, 3:18 AM |
R.a.B.B.i.T | [quote author=shadypalm88 link=topic=12151.msg119919#msg119919 date=1120957744] [quote author=rabbit link=topic=12151.msg119897#msg119897 date=1120951751] [quote author=shadypalm88 link=topic=12151.msg119847#msg119847 date=1120934478] I think this is a useful document. I'm in the process of converting it to HTML format and editing it to add more background information. You can see how it's coming along at this site. Comments, suggestions, and corrections are welcome. [/quote]You're part about xWORDS is incorrect. The size of a WORD depends on the system. The size you have them listed as is for a 16-bit system, which is probably not used anymore. You should fix that.[/quote]True, but that's the convention normally used here. I should probably explain that better. [quote author=rabbit link=topic=12151.msg119897#msg119897 date=1120951751]Also, you just blurt out ASCII with no reference or description of what it is (which is the nature of the document) [/quote]Where do I do that? I do explain that it's a character encoding, and what that is; I'm not sure what else you mean. [/quote][quote]Just as each person in the class came up with his/her own code, there are many character sets in existance; the only ones you really need to know about at this point are ASCII and ISO 8859-1, which is an extension of ASCII. These character sets are used to represent Latin alphabets, used by English, Spanish, French, etc. (ASCII does not include accented characters, limiting it to English.) ISO 8859-1 is the character set used on Battle.net. In this character set (and ASCII), each character is one byte....[/quote]You don't even explain what the acronym stands for :\ Also, I'll be posting about xWORD conventions. | July 10, 2005, 4:29 AM |
Insolence | [quote author=Kp link=topic=12151.msg119941#msg119941 date=1120965503] OK, since this is deteriorating rapidly: If you can't give an answer other than "search the 'Net", just don't say anything at all. That way, the original poster will wait for days and never get any responses. :) IMO, this is far better than telling them to search for the content, as they will usually take it out on the regulars if you respond at all. Just treat stupid questions like trolls. [/quote]Thank you, also I didn't mean to be arrogant. More jokingly, as he did, than arrogant. It shouldn't matter who I'm joking with... especially since many people would consider that an insult and I replied with a joke instead of a flame. Obviously I've tried searching google, many times: "how to connect to battle.net". However, there are many vague things I didn't understand enough to make a proper query or translate VB code. Also, I have little time between bot projects and my PHP stuff, it'd mean a lot to me if someone took the time to link to actual information. (Notes: my thread was responded to very well and I appriciate those who helped) Anyway, as I said before this was a good guide, and I actually did a little experimenting in Ethereal (I already had installed). The whole point of the project I want to make is the LACK of packet knowledge you need to have to make a bot. Very far off topic now, thanks for at least warning me about flaming senior members :) | July 10, 2005, 4:55 AM |
Archangel | Well, if you look for battle.net bot development on google you will find a link to this forum, so, its better to put information on here so when people search in google they will be directed to this site :) or when search in this forum they will find it 2, not just a google link. | July 10, 2005, 7:41 AM |
Dyndrilliac | Google can return literally hundreds of pages containing information about a topic in a matter of seconds. The people here are telling you to utilize this to your advantage, and you reply implying they are somehow spiting you when in fact in order to come close to what Google does for you it would be a grave inconvenience both to the person requesting information (takes longer to get what he/she needs to know) and the person giving it (has to compile it all). Not to mention this behaviour being just plain rude. In order for information relaying to be as successful as possible, you're better off leaving the broad vague questions/topics to Google and coming here when you have a very articulate, specific question. Edit: My post is largely irrelevant. Many posts addressing this were posted while my slow self was typing. [quote author=Archangel link=topic=12151.msg119977#msg119977 date=1120981273] Well, if you look for battle.net bot development on google you will find a link to this forum, so, its better to put information on here so when people search in google they will be directed to this site :) or when search in this forum they will find it 2, not just a google link. [/quote] More often than not people replying with Google answers were able to search for the desired information in a small timeframe and come up with results. If they can do it, you can too. | July 11, 2005, 6:09 PM |
Networks | Insolence, this is really the thing...if you can't obtain the information on battle.net's main bot development forum, where else can I point you? There's so much open source and information available you really shouldn't need ANOTHER tutorial when there's 1000's on google already. Why reinvent the wheel? Put some work in and stop being so damn dependent. (I don't mean to be mean) I'd say this packet intro is great since the only OTHER one I know of is feanor's and this is much more complete. Oh and Kp, I am a senior member now!? :D <3 | July 11, 2005, 8:16 PM |
Myndfyr | OT: [quote author=Networks link=topic=12151.msg120237#msg120237 date=1121112996] Oh and Kp, I am a senior member now!? :D <3 [/quote] He said "more senior." That would be anyone with more than 10 posts. :P | July 11, 2005, 8:38 PM |
Quarantine | No Networks, you're a "Full Member" | July 11, 2005, 8:46 PM |
The-FooL | [quote author=Archangel link=topic=12151.msg119929#msg119929 date=1120961968] [Opinion/Question] Why do people always answer "Google"? its better to give usefull links to the documentation, that way this forum will just not have google links. [/quote] Because many are (rightfully) annoyed at people asking the same easy questions, and decide to be assholes in an effort to make the people do some work. | July 11, 2005, 10:35 PM |
Insolence | [quote author=Networks link=topic=12151.msg120237#msg120237 date=1121112996] Insolence, this is really the thing...if you can't obtain the information on battle.net's main bot development forum, where else can I point you? There's so much open source and information available you really shouldn't need ANOTHER tutorial when there's 1000's on google already. Why reinvent the wheel? Put some work in and stop being so damn dependent. (I don't mean to be mean) I'd say this packet intro is great since the only OTHER one I know of is feanor's and this is much more complete. Oh and Kp, I am a senior member now!? :D <3 [/quote]Some work into it? I've researched a ton. It may be harder for someone like me, you know how certain people learn better from physical, vocal, and visual types of learning? I learn best from vocal. It's very hard for me to absorb all the information I need to jump from the basics I've been doing to TCP stuff. Honestly it can't be that much of a problem, and if it is you can do more good by not saying anything at all. (not to be mean) Whenever someone asks a very simple question about something I'm experienced with, (autoit/php/C#) and I'm in a good mood I gladly give a very thought of explination of the solution to their problem. If I hardly even know where to start researching for a problem, at least a little bit of information would do me well. Obviously I've googled many times, and tried searching for '+C# +connecting' '+C# +source' on here. | July 11, 2005, 11:01 PM |
Myndfyr | What kind of Google search string did you use? Something as thorough as "Connecting to a server with C#"? What about resources like DotNetNuke, TheCodeProject, GotDotNet (one of my personal favorites), or even (eww) vbcode.com? There is a wealth of information there. Additionally, I have posted several code descriptions about it: In this post, I provide links to information on high-level TCP/IP communications with .NET as well as a generic class that can be overridden for TCP/IP communication. If you look at the source code I provided at the last post in the above link, and then compare it to this older source code, you'll find a similar design pattern. Specifically, you'll find processing going on in the OnDataXxx methods. That class supports connecting to Battle.net via BNLS (and I think it might even support local revision checking, but I'm not sure) with STAR, SEXP, W2BN, D2DV, and D2XP. (That's old code, though -- I've learned a lot since then). Don't expect me to explain that code, though. There are close to 2500 lines in that class, and there are lots of supporting classes as well. I don't believe anyone is going to write a tutorial or has written a tutorial specifically about connecting to Battle.net via C# or any .NET language. There are plenty of tutorials, though, for connecting to ANY server in C# and other .NET languages, and with BnetDocs and the rest of the community here, willing to clarify what the protocol means, not to mention past collected discussion, it really shouldn't be that hard. | July 11, 2005, 11:36 PM |
Networks | [quote author=Insolence link=topic=12151.msg120264#msg120264 date=1121122907] [quote author=Networks link=topic=12151.msg120237#msg120237 date=1121112996] Insolence, this is really the thing...if you can't obtain the information on battle.net's main bot development forum, where else can I point you? There's so much open source and information available you really shouldn't need ANOTHER tutorial when there's 1000's on google already. Why reinvent the wheel? Put some work in and stop being so damn dependent. (I don't mean to be mean) I'd say this packet intro is great since the only OTHER one I know of is feanor's and this is much more complete. Oh and Kp, I am a senior member now!? :D <3 [/quote]Some work into it? I've researched a ton. It may be harder for someone like me, you know how certain people learn better from physical, vocal, and visual types of learning? I learn best from vocal. It's very hard for me to absorb all the information I need to jump from the basics I've been doing to TCP stuff. Honestly it can't be that much of a problem, and if it is you can do more good by not saying anything at all. (not to be mean) Whenever someone asks a very simple question about something I'm experienced with, (autoit/php/C#) and I'm in a good mood I gladly give a very thought of explination of the solution to their problem. If I hardly even know where to start researching for a problem, at least a little bit of information would do me well. Obviously I've googled many times, and tried searching for '+C# +connecting' '+C# +source' on here. [/quote] I bet that very simple question is also quite specific as well. Sockets aren't quite as simple as counting to 123 (although some people may think so I suppose). The thing is there are tutorials you just need to find them, if you are dependent on people to do things for you, and I take this from experience, you will NEVER get anywhere, I promise. Anyway no point in beating this issue on the ground, as MyndFyre stated, There's a wealth of information you just need to look for it. | July 12, 2005, 12:16 AM |