DoT_PiTcH Contributor
Joined: 07 Aug 2002 Posts: 85
|
Posted: Thu Jan 30, 2003 2:25 pm Post subject: Here is a Client Server chat prgramm i wrote! |
|
|
:SERVER
Code: |
EXTERNAL VDSINET.DLL, Public Freeware Key|90257236
Net Socket, Auto
Net Socket, VDSevents
net socket, addr, 127.0.0.1
Net Socket, port, 415
Net Socket, Server
option fieldsep, " "
REM BY DOT PITCH
Title Server
DIALOG CREATE,Server,-1,0,194,243
DIALOG ADD,LIST,Users,6,6,180,214
DIALOG ADD,BUTTON,Closeconnection,222,6,180,16,Close Connection
DIALOG SHOW
list add, users, ES_ltd_SVR
:Evloop
%e = @event()
if %e
goto %e
else
%%Nete = @Net(Socket,Event)
if %%Nete
goto %%nete
end
goto evloop
:Accept
%%id = @Net(Socket, SENDERID)
Net Socket, Sendid, %%id, Welcome!
goto evloop
:Network
%%id = @Net(Socket, SENDERID)
%%msg = @Net(Socket,Data)
parse "%%cmd;%%Var", %%Msg
if @equal(%%Cmd, /nick)
Net Socket, sendall,%%msg|%%id
goto SetNick
else
if @equal(%%cmd, /leave)
%%id = @Net(Socket, SENDERID)
goto ClientDisconnect
else
Net Socket, Sendall, %%msg
goto evloop
:Error
goto Evloop
:closec
goto ClientDisconnect
:CloseconnectionBUTTON
Net Socket, close
goto evloop
:ClientDisconnect
wait .3
%m = @match(users, %%var|%%id)
if %m
list delete, users, %m
Net Socket, Sendall, /left %%var|%%id
else
end
goto evloop
:SetNick
%%id = @Net(Socket, SENDERID)
%m = @match(users, %%var|%%id)
if %m
Net Socket, Sendid, %%id, /NNick
else
list add, users, %%var|%%id
%c = 0
%i = @count(users)
repeat
wait .6
Net Socket, sendid, %%id, %%cmd" "@item(users,%c)
%c = @fadd(%c,1)
until @equal(%c,%i)
end
goto Evloop
:Close
exit
|
:CLIENT
Code: |
EXTERNAL VDSINET.DLL, Public Freeware Key|90257236
REM BY DOT PITCH
option fieldsep," "
Title E C H O S I D E ltd Chat Client v1.1
DIALOG CREATE,E C H O S I D E ltd Chat Client 1.1,-1,0,625,320,ontop,nosys
DIALOG ADD,STYLE,S2,,6,,BLACK,YELLOW
DIALOG ADD,STYLE,S1,,6,,BLACK,LTGREEN
DIALOG ADD,MENU,File,&Save,&Connect,-,&Exit
DIALOG ADD,MENU,Options,Settings,Commands
DIALOG ADD,MENU,Help,&About
DIALOG ADD,PROGRESS,CntnPrgrs,308,0,626,12
DIALOG ADD,EDIT,Typehere,290,0,512,19,,S2
DIALOG ADD,LIST,MSGBOARD,0,0,512,288,,,S1
DIALOG ADD,LIST,users,0,512,112,288,,S1,sorted
DIALOG ADD,BUTTON,Send,290,514,110,19,Send,,default
DIALOG SHOW
list create, 1
:Evloop
%%Nete = @Net(Socket,Event)
%e = @event()
if %e
goto %e
else
if %%Nete
goto %%nete
end
goto evloop
:Connect
goto evloop
:Closec
net Socket, SendServer, /leave %%nick
wait 1
exit
:error
goto evloop
:network
%%msg = @Net(Socket,Data)
parse "%%CMD;%%VAR", %%msg
if @equal(%%cmd, /nick)
goto populate
else
if @equal(%%cmd, /left)
goto DePopulate
else
if @equal(%%cmd, /NNick)
goto AIU
else
list add, MSGBOARD, @dlgtext(MSGBOARD)%%msg
list add, 1, @dlgtext(MSGBOARD)%%msg
if @greater(@count(MSGBOARD),20)
repeat
list seek, MSGBOARD, 0
list delete, MSGBOARD
until @equal(@count(MSGBOARD),20)
else
end
goto Evloop
:SaveMENU
%%filename = @input(Save Session As:@tab()"(" Ex. chat1")")
list savefile, MSGBOARD, .\%%filename.txt
goto evloop
:ExitMENU
goto Close
:SettingsMENU
goto evloop
:CommandsMENU
goto evloop
:ConnectMENU
%%addr = @input(Server's IP Address :)
if @null(%%addr)
warn Nothing Was Entered! @cr()@cr()EX. 198.162.0.1
goto connectmenu
else
%%port = 415
Net Socket, Auto
Net Socket, VDSevents
Net Socket, port, %%port
Net Socket, Addr, %%addr
Net Socket, Client
%%nick = @substr(@input(Enter Desired Nick Name For Session: No Spaces!!!),1,14)
Net Socket, SendServer, /nick %%nick
goto evloop
:AboutMENU
goto evloop
:SendBUTTON
wait .5
Net Socket, sendserver,%%nick >" "@dlgtext(typehere)
DIALOG CLEAR, typehere
end
goto evloop
:AIU
%%nick = @input(Enter Desired Nick Name For Session:)
Net Socket, SendServer, /nick %%nick
goto evloop
:Populate
%m = @match(users,%%var)
if @not(%m)
list add, users, %%var
else
end
goto evloop
:DePopulate
wait .3
%m = @match(users, %%var)
if %m
list delete, users, %%var
else
end
goto evloop
:Close
goto closec
|
Also note that not all functions on client work so... yeah.
DoT_PiTcH |
|