5,663,486 members and growing! (15,178 online)
Email Password   helpLost your password?
Languages » VBScript » General     Intermediate License: The GNU General Public License (GPL)

multi-protocoll Chat

By Merz_Konstantin_FFB

With this application you can chat with computers and different protocolls.
VBScript, VB 6, VB, .NET, Windows, Win2KVS6, Visual Studio, Dev

Posted: 23 Mar 2005
Updated: 23 Mar 2005
Views: 19,810
Bookmarked: 7 times
Announcements
Loading...



Search    
Advanced Search
Sitemap
7 votes for this Article.
Popularity: 1.99 Rating: 2.36 out of 5
2 votes, 28.6%
1
1 vote, 14.3%
2
0 votes, 0.0%
3
1 vote, 14.3%
4
3 votes, 42.9%
5
Note: This is an unedited contribution. If this article is inappropriate, needs attention or copies someone else's work without reference then please Report This Article

Introduction

This application is a simple chat-application wich provides the way to use different protocolls.(IP, Serial, Modem, IPX, ....)

 

Code-Blocks

Modul1:

If you want to you can develop an Add-In(whoch is compatible with the chat) like a game to use it.

Public DX As New DirectX7
Public DP As DirectPlay4
Public DPEnum As DirectPlayEnumConnections
Public DPAddress As DirectPlayAddress
Public Session As DirectPlaySessionData
Public DPEnumSessions As DirectPlayEnumSessions

Public PlayerIDNum As Long
Public PlayerFriendly As String
Public PlayerFormal As String

'Warning: Don't use the string below for the chat.
Public Const MyGuid As String = _
      "{8EC1E2EC-5266-11D4-811C-AD15B9B82C76}"


Public Sub CreateSession(ByRef ConnectionIndex As Long)
  'with this we create a session.
  Set DPAddress = DPEnum.GetAddress(ConnectionIndex)
  Call DP.InitializeConnection(DPAddress)

  Set Session = DP.CreateSessionData
  Session.SetMaxPlayers 8 'here are only 8 chaters/players allowed
  Session.SetSessionName "ChatSession"
  Session.SetGuidApplication MyGuid 'the chat uses the created GUID
  'these 2 flags should be enough for every application.
  Session.SetFlags _
        DPSESSION_DIRECTPLAYPROTOCOL Or DPSESSION_MIGRATEHOST

  'now we create a session based on the properties we've just set.
  Call DP.Open(Session, DPOPEN_CREATE)

  CreatePlayer

  Form1.Timer1.Enabled = True
End Sub


Public Sub JoinSession()
  'here will be "discussed" wich session you join
  Set Session = DPEnumSessions.GetItem(Form1.List2.ListIndex + 1)

  'check if one more player is allowed to join
  If Session.GetMaxPlayers < Session.GetCurrentPlayers Then End

  Session.SetGuidApplication MyGuid 'the chat/game uses the created GUID

  'open and join session
  DP.Open Session, DPOPEN_JOIN

  CreatePlayer

  Form1.Timer1.Enabled = True
End Sub

Public Sub CreatePlayer()
  'make attributes to the player/chater...
  PlayerFriendly = InputBox("Nickname", "Create Player")
  PlayerFormal = InputBox("Real name", "Create Player")

  'now we create a player/chater - the function returns an ID  which we can use to identify us self... (later)
  PlayerIDNum = _
        DP.CreatePlayer(PlayerFriendly, PlayerFormal, 0, 0)
End Sub

Public Sub SendMessage()
  Dim Msg As DirectPlayMessage

  Set Msg = DP.CreateMessage

  'fill message
  Msg.WriteString (PlayerFriendly & ": " & Form1.Text1.Text)
  
  'send
  DP.SendEx PlayerIDNum, DPID_ALLPLAYERS, DPSEND_GUARANTEED, _
        Msg, 0, 0, 0

  Form1.List3.AddItem (PlayerFriendly & ": " & Form1.Text1.Text)
  Form1.Text1.Text = ("")
End Sub

Public Sub ReceiveMessage()
  Dim SourceIP As Long
  Dim TargetIP As Long
  Dim NumMessagesWaiting As Long
  Dim Msg As DirectPlayMessage
  
  NumMessagesWaiting = DP.GetMessageCount(PlayerIDNum) 'the number of waiting messages
  
  Do While NumMessagesWaiting > 0
    Set Msg = DP.Receive(SourceIP, TargetIP, DPRECEIVE_ALL)
    
    Form1.List3.AddItem Msg.ReadString
     
    'decrement number of waiting messages
    NumMessagesWaiting = NumMessagesWaiting - 1
  Loop

End Sub

 

I  had no problems while developing that. These are some parts of the whole code. It's not very long and not very difficult.

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPL)

About the Author

Merz_Konstantin_FFB


My hobbies are C++(managed and not manged(i'm a total tiro at this), Visual Basic .Net, Inside Win2k, Tennis and maths.
Occupation: Web Developer
Location: Germany Germany

Other popular VBScript articles:

Article Top
Sign Up to vote for this article
You must Sign In to use this message board.
FAQ FAQ Noise ToleranceSearch Search Messages 
 Layout  Per page   
 Msgs 1 to 1 of 1 (Total in Forum: 1) (Refresh)FirstPrevNext
Questionusing the IPX for a gamememberDJFire0:16 5 Jun '08  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 23 Mar 2005
Editor:
Copyright 2005 by Merz_Konstantin_FFB
Everything else Copyright © CodeProject, 1999-2008
Web12 | Advertise on the Code Project