www.boolean.name

www.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=109)
-   -   GNet (http://forum.boolean.name/showthread.php?t=20794)

nikikust 28.12.2019 15:27

GNet
 
Здравствуйте, у меня такой вопрос, как подключиться по remoteIp а не по локалке (127.0.0.1) в примере gnet-а, порты писал, свой ip тоже, но не подключается.

Если нет примера, то вот код:
Код:

Strict

Import BRL.GNet

AppTitle="GNet Test2"

Local host:TGNetHost=CreateGNetHost()

Local me:TGNetObject
Local chat$,info$

Graphics 800,600,0,15

Repeat

        Local c=GetChar()
       
        Select c
        Case 8
                If chat chat=chat[..chat.length-1]
        Case 27
                If Confirm( "Quit?" )
                        CloseGNetHost host
                        End
                EndIf
        Case 13
                If chat.find("/")=0
                        chat=chat[1..]
                        Local cmd$=chat
                        Local arg$
                        Local i=chat.find(" ")
                        If i<>-1
                                cmd=chat[..i]
                                arg=chat[i+1..]
                        EndIf
                        Select cmd
                        Case "create"
                                If me
                                        info="Already created"
                                Else
                                        me=CreateGNetObject( host )
                                        SetGNetString me,0,arg
                                        SetGNetString me,1,"Ready"
                                EndIf
                        Case "close"
                                If me
                                        CloseGNetObject me
                                        me=Null
                                Else
                                        info="Not created"
                                EndIf
                        Case "quit","exit"
                                CloseGNetHost host
                                End
                        Case "nick"
                                If arg
                                        If me SetGNetString me,0,arg
                                        info="Nick changed to "+arg
                                Else
                                        info="Expecting arg"
                                EndIf
                        Case "listen"
                                Local port=12345
                                If arg port=Int(arg)
                                If GNetListen( host,port )
                                        info="Listening on port "+port
                                Else
                                        info="Listen failed"
                                EndIf
                        Case "connect"
                                If arg
                                        Local addr$=arg
                                        Local port=12345
                                        Local i=arg.find(":")
                                        If i<>-1
                                                addr=arg[..i]
                                                port=Int(arg[i+1..])
                                        EndIf
                                        If GNetConnect( host,addr,port )
                                                info="Connected to "+addr+":"+port
                                        Else
                                                info="Failed to connect to "+addr+":"+port
                                        EndIf
                                Else
                                        info="Expecting arg"
                                EndIf
                        Default
                                info="Unrecognized command '"+cmd+"'"
                        End Select
                Else
                        If me SetGNetString me,1,chat
                EndIf
                chat=""
        Default
                If c>31 And c<127 chat:+Chr(c)
        End Select
       
        GNetSync host
       
        Cls

        Local y,h=GraphicsHeight()
       
        For Local obj:TGNetObject=EachIn GNetObjects( host,GNET_ALL )
                If obj.state()=GNET_CLOSED Continue
                If obj=me
                        SetColor 255,255,255
                Else
                        SetColor 0,128,255
                EndIf
                DrawText GetGNetString( obj,0 )+":"+GetGNetString( obj,1 ),0,y
                y:+16
        Next
       
        SetColor 255,255,0
        DrawText info,0,h-32
       
        SetColor 0,255,0
        DrawText ">"+chat,0,h-16
        DrawRect TextWidth(">"+chat),h-16,8,16
        DrawText "/create nick    /listen    /connect host    /quit    /nick newnick",0,h-48
       
        Flip
       
Forever



Спасибо


Часовой пояс GMT +1, время: 17:21.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Перевод: zCarot