Chat problem
Übersicht

![]() |
DABetreff: Chat problem |
![]() Antworten mit Zitat ![]() |
---|---|---|
Moin,
Ich habe vor mit einem freund von mir ein kleines chat programm zu programmieren. Habe auch schon auf BlitzBasic.com nach eine msample gesucht. Hab auch eins gefunden. Wir beide haben es gestartet. Einer als Host und der andere als client. Aber irgendwie kommt keine nachricht an? Wir haben auch mal getauscht, also er Host und ich client. Aber nichts? Ach und nochwas. Bei dem programm zeigt er bei mir mehrere addressen an. Wen ich nachher ein chat programm mache ist es ja nervig immer und immer wieder die ip einzugeben. Wie könnte ich das am besten lösen? Hier ist der Code. Code: [AUSKLAPPEN] ; ; Sample UDP communications program (Client/Server same machine) ; ; Author: W.Gray Last updated: 1/5/4 ; Comment: Free code no restrictions, use at your own risk. ; ; Instructions: ; Start program, select mode, your IP will be displayed, enter destination IP , type. ; Testing client and server on same machine, run server with 127.0.0.1, and run client with 127.0.0.1 Print "Sample UDP Communications" ; Ask for mode Print "1-Server" Print "2-Client" Mode$=Input$(">") Select Mode$ Case "1" Udp_Port=4000 ; I/O Port Dest_Port=4001 AppTitle "Server on UDP Port "+Str(Udp_Port) Case "2" Udp_Port=4001 ; I/O Port Dest_Port=4000 AppTitle "Client on UDP Port "+Str(Udp_Port) Default Udp_Port=4000 ; I/O Port Dest_Port=4001 AppTitle "Server on UDP Port "+Str(Udp_Port) End Select ; Display all local user IP's ; Print "Local IPs:" For i=1 To CountHostIPs(GetEnv("localhost")) Print DottedIP(HostIP(i)) Next Print "Enter Destination IP#: xxx.xxx.xxx.xxx" Dest_IP$=Input$(">") ; Convert to integer IP IP= Int_IP(Dest_IP$) Print "Starting Chat <esc> to quit" ; Allocate ports, get stream id's udp_stream=CreateUDPStream(Udp_Port) ; Read Stream .loop ; Poll Keyboard for Keypress. byte1=GetKey() ; transmit each key press. If byte1>0 Then ; If 'Enter' pressed force new line locally, and send it. If Byte1=13 Then ; put character in stream buffer. WriteByte(udp_stream,byte1) ; send all characters in the stream buffer. SendUDPMsg udp_stream,IP,Dest_Port Else ; Show character before we send it. Write Chr(Byte1) ; put character in stream buffer. WriteByte(udp_stream,byte1) ; send all characters in the stream buffer. SendUDPMsg udp_stream,IP,Dest_Port EndIf EndIf ; Load UDP message into stream IP_rd=RecvUDPMsg(udp_stream) ; Test for messages in stream If IP_rd <> 0 Then ;Get number of bytes in UDP stream Buflen=ReadAvail(udp_stream) If Buflen > 0 Then ; Get received character and print to display byte1=ReadByte(udp_stream) ; Translate <enter> key If byte1=13 Then Else Write Chr$(byte1) EndIf EndIf EndIf ; Look for <escape> If KeyDown(1) Then Goto quit EndIf Goto loop ; Cleanup and terminate .quit CloseUDPStream udp_stream ;-------------------------------------- ; FUNCTION: INT_IP(IP$) ; ; Returns integer value of a IP Address string ; IP$ Format n.n.n.n Function Int_IP(IP$) a1=val(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,".")) a2=val(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,".")) a3=val(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,".")) a4=val(IP$) Return (a1 Shl 24) + (a2 Shl 16) + (a3 Shl 8 ) +a4 End Function ;-------------------------------------- ; FUNCTION: VAL(STRING$) ; ; Returns integer value of a string Function val(String$) ac=String$ Return String$ End Function Thx DarkAngel |
||
Deutscher Blitz Basic Chat |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Wenn du keine statische IP hast mußt du gezwungenermaßen die IP jedesmal eingeben. Ansonsten könntest du auch einen Service nutzen, wie DynDNS o.ä. Ich hab das Programm nicht ausprobiert, aber könnt es etwas mit folgender Zeile zu tuen haben, das es nicht funktioniert? Zitat: Sample UDP communications program (Client/Server same machine)
Achja, für einen Chat würde ich TCP für sinniger halten. grüße |
||
http://bl4ckd0g.funpic.de |
![]() |
DA |
![]() Antworten mit Zitat ![]() |
---|---|---|
Versteh nicht ganz was du damit meinst?
Egal, ich versuche es dann halt nochmal mit TCP aber trodzdem Danke. Thx DarkAngel |
||
Deutscher Blitz Basic Chat |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Wenn du nicht verstehst was ich mein, dann sag das doch einfach genauer. Evtl kann ich dir dann ja erklähren was mit was gemeint ist! grüße |
||
http://bl4ckd0g.funpic.de |
![]() |
DA |
![]() Antworten mit Zitat ![]() |
---|---|---|
DarkAngel hat Folgendes geschrieben: Versteh nicht ganz was du damit meinst?
Hab ich doch geschrieben. ![]() Thx DarkAngel |
||
Deutscher Blitz Basic Chat |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group