[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]


  • Страница 1 из 1
  • 1
Модератор форума: Spidy, turBO, blitz3d  
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Сервер-клиент (ошибка в коде)
Сервер-клиент
ххХищныЙххДата: Суббота, 20.08.2011, 02:25 | Сообщение # 1
ламер
Группа: Пользователи
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
Я уже спрашивал как создавать сервераи клиенты теперь прошу помощи конкретно в коде

Сервер
Code

Graphics 600,400,0,2

svrGame=CreateTCPServer(8080)  

If svrGame<>0 Then  
Print "Сервер запущен удачно."  
Else  
Print "Ошибка создания сервера."  
End  
End If  

While Not KeyHit(1)  

strStream=AcceptTCPStream(svrGame)  

If strStream Then

ReadLine(strStream)
ReadLine$(strStream)
;If s$<>0 Then

;Print "aaa"
;EndIf

Delay 2000

Else  
Print "///"  
Delay 1000  
End If  

Wend


И клиент

Code

Graphics 600,400,0,2

strmGame=OpenTCPStream("192.168.1.101",8080)  

lo$=Input("   log")
pa$=Input("   pas")
WriteLine (strmGame,lo$)
WriteLine (strmGame,pa$)


Задумка чтобы в клиете после вводы логина и пароля он отправлял данные на сервер. Но на сервер приходит пустая строка и сервер начинает лагать. Помогите плиз cry
 
MishanayCoolДата: Суббота, 20.08.2011, 09:58 | Сообщение # 2
разработчик
Группа: Пользователи
Сообщений: 226
Награды: 11
Репутация: 20
Статус: Offline
Так попробуй:
Создание сервера:
Code
svrGame=CreateTCPServer(8080)   

If svrGame<>0 Then   
Print "Сервер запущен удачно."   
Else   
Print "Ошибка создания сервера."   
End   
End If   

While Not KeyHit(1)   
strStream=AcceptTCPStream(svrGame)   
If strStream Then
Cls
Text 10,10,"Login: "+ReadString$(strStream)
Text 10,20,"Password: "+ReadString$(strStream)
Text 10,30,"Данные от клиента успешно приняты"
Flip
Delay 20
WaitKey()
End
Else
Cls
Text 10,10,"Данных от клиента нет..."
Flip
Delay 20   
End If   
Wend   

End


Создание клиента:
Code
strmGame=OpenTCPStream("192.168.1.101",8080)   

If strmGame<>0 Then   
Print "Клиент соеденился с сервером."   
Else   
Print "Сервер не отвечает."   
WaitKey   
End   
End If   

; отправим сообщение серверу
login$=Input("   login: ")
password$=Input("   password: ")

WriteString strmGame,login$
WriteString strmGame,password$
End


Если и это не пойдёт значит ты скорей всего ошибся IP адресом сервера.
У меня код работает.


MiniDemo3D - Blitz3D

Сообщение отредактировал MishanayCool - Суббота, 20.08.2011, 10:03
 
ххХищныЙххДата: Воскресенье, 21.08.2011, 00:19 | Сообщение # 3
ламер
Группа: Пользователи
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
Вот ещё проблема я сделал чтоб после отправки на сервер логина и пароля он искал его в "базе" и отправлял клиенту правильный ли пароль
Code
Graphics 600,400,0,2

svrGame=CreateTCPServer(8080)     

If svrGame<>0 Then     
Print "Сервер запущен удачно"     
Else     
Print "Ошибка создания сервера"     
End     
End If     

While Not KeyHit(1)     
strStream=AcceptTCPStream(svrGame)     
If strStream Then
Cls
login$=ReadString$(strStream)
password$=ReadString$(strStream)

Text 10,30,"Данные от клиента успешно приняты"
Flip

If login$<>0 And password$<>0 Then

test$=ReadFile("logins\2222.txt")

   If test$=password$ Then
   WriteLine strStream,"login: true"
   Else
   WriteLine strStream,"login: false"
   EndIf

Print test
Print password$

EndIf   

WaitKey()
Delay 20

;End
Else
Cls
Text 10,10,"Данных от клиента нет..."
Flip
Delay 20     
End If     
Wend     

End


Но в ответ всегда приходит что пароль не правильный. В файле 2222.txt написано 1111 но пишет что пароль не подходит и на сервере пишет что пароль должен быть 11991208

Code
Graphics 600,400,0,2

strmGame=OpenTCPStream("192.168.1.101",8080)     

If strmGame<>0 Then     
Print "Êëèåíò ñîåäåíèëñÿ ñ ñåðâåðîì."     
Else     
Print "Ñåðâåð íå îòâå÷àåò."     
WaitKey     
End     
End If     

; îòïðàâèì ñîîáùåíèå ñåðâåðó
login$=Input("   login: ")
password$=Input("   password: ")

WriteString strmGame,login$
WriteString strmGame,password$

Repeat
log1$=ReadLine$( strmGame )

Until log1$<>0

If log1$="login: true"  Then
Print log1$

Print "Правильный пароль!"
WaitKey()
Else
Print log1$

Print "Не правильный пароль"
WaitKey()
EndIf

End


И если ввести такой пароль то напишет что он должен быть 11991112
Логин использую 2222 пароль 1111


Сообщение отредактировал ххХищныЙхх - Воскресенье, 21.08.2011, 01:27
 
MishanayCoolДата: Среда, 31.08.2011, 18:35 | Сообщение # 4
разработчик
Группа: Пользователи
Сообщений: 226
Награды: 11
Репутация: 20
Статус: Offline
Я с сетевым кодом не очень лажу, но даже навскидку окинув глазом твой вариант.
Без обид, но что не строчка, то полный бред.
Особенно вот эта часть кода:
Code
test$=ReadFile("logins\2222.txt")

      If test$=password$ Then
      WriteLine strStream,"login: true"
      Else
      WriteLine strStream,"login: false"
      EndIf

Будь внимательней!!!

Ну да ладно, это не так важно.
Долго ковырялся и не жалею, стал чётко понимать принцип сетевых обменов.

для проверки кода
логин-12345
пароль-67890
Вот мой вариант:

Сервер
Code
svrGame=CreateTCPServer(8080)         

If svrGame<>0 Then         
Text 10,10,"Сервер запущен удачно."         
Else         
Text 10,10,"Ошибка создания сервера."         
End         
End If         

While Not KeyHit(1)

;Ждём сообщения от клиента       
strStream=AcceptTCPStream(svrGame)         
If strStream Then
;Дождались, теперь читаем их
Login$=ReadLine$(strStream)
Password$=ReadLine$(strStream)
Text 10,30,"Login: "+Login$
Text 10,40,"Password: "+Password$
Text 10,50,"Данные от клиента успешно приняты"

;Проверяем полученные данные от клиента и отсылаем ему ответ.
If Login$="12345" And Password$="67890" Then
WriteLine strStream,"Пароль верный"
Else
WriteLine strStream,"Ошибка пароля"
EndIf
Flip
Delay 20
WaitKey()
End

Else
Text 10,20,"Данных от клиента нет..."
Flip
Delay 20         
End If         
Wend         

End


Клиент
Code
strmGame=OpenTCPStream("192.168.1.102",8080)         

If strmGame<>0 Then         
Print "Клиент соеденился с сервером."         
Else         
Print "Сервер не отвечает."         
WaitKey         
End         
End If         

; отправим сообщение серверу
login$=Input("   login: ")
password$=Input("   password: ")

WriteLine strmGame,login$
WriteLine strmGame,password$
Print "Сообщение отправлено."       

;Принимаем сообщение с сервера
Print ReadLine$( strmGame )       

WaitKey()
End


MiniDemo3D - Blitz3D

Сообщение отредактировал MishanayCool - Четверг, 01.09.2011, 09:16
 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Сервер-клиент (ошибка в коде)
  • Страница 1 из 1
  • 1
Поиск: