|
#1
|
|||
|
|||
ошибка с сокетами
использовал serversocket и clientsocket поставил значение порта на 45288,в общем если нажимаю на кнопку должно произойти подключение,в обработчике событие onconnect в label должно написаться подключилось,но когда нажимаю кнопку вот такая ошибка вылазиет asynchronous socket error 10061. Делаю все в домашней сети...написал айпи второго компа,вроде все сделал.
|
#2
|
|||
|
|||
Цитата:
Во первых, что у нас на файерволе? Например, у меня пришлось открывать порты на нем для работы по нестандартным портам. Во вторых. проверь сначала на одной машине, а потом уже настраивай на 2х. |
#3
|
|||
|
|||
А разве так можно,поставить сервер на одном компе и с него же запускать клиент?ННезналфайрвола как такого нету ,за то есть нод)попробую отрубить его.Блин еще писал чат по статье ,в общес когда пытаюсь подключиться пишет ошибку что тотипа '' is not availd integer value,я так понял здесь написано что ''неправильная числовая переменная?хотя такой переменной вообще нету.
|
#4
|
|||
|
|||
В общем хоть с нодом хоть без него все равно такая же ошибка ,мне вот со второй программой интересно .
Вот выкладываю исходный код сервера и клиента: Код:
server: procedure TForm1.FormCreate(Sender: TObject); begin ServerSocket1.Port :=777; ServerSocket1.Active:=True; end; procedure TForm1.Button1Click(Sender: TObject); begin ServerSocket1.Active:=false; ServerSocket1.Close; Close; end; procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var S:String; I:Integer; begin S:=IntToStr(Socket.SocketHandle) + '>' + Socket.ReceiveText; ListBox1.Items.Add(s); For i:=0 to ServerSocket1.Socket.ActiveConnections - 1 do if serversocket1.Socket.Connections[i].SocketHandle <> Socket.SocketHandle then ServerSocket1.Socket.Connections[i].SendText(S); end; client: procedure TForm1.Button1Click(Sender: TObject); begin ClientSocket1.Address:=Edit1.Text; ClientSocket1.Port:=StrToInt(Edit3.Text); if not ClientSocket1.Active then ClientSocket1.Active:=True; end; procedure TForm1.FormDestroy(Sender: TObject); begin ClientSocket1.Active:=false; ClientSocket1.Close; Close; end; procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); begin ListBox1.Items.Add(Socket.ReceiveText); end; procedure TForm1.Button2Click(Sender: TObject); begin if Edit3.Text <> '' then ClientSocket1.Socket.SendText(Edit3.text); Edit3.Text:=''; end; Последний раз редактировалось Admin, 26.08.2008 в 17:51. |
#5
|
|||
|
|||
БЛин мб кто нибудь знает?
|
#6
|
|||
|
|||
попробуй какой нибудь другой порт, нсколька я знаю можно заменить сокеты индюком но примера нет
|
#7
|
|||
|
|||
Ай тут ваще не в порте дело походу,попробывал стандартный пример который в демос идет,только вот там в адрессе( что то вроде айпи) нужно писать, локал хост.А если приконнектиься к другому компу нада?Хотя там как я понял для локальной сети?мне гораздо интереснее что это за ошибка? '' is not availd integer value..как мне это исправить?
|
#8
|
|||
|
|||
Цитата:
|
#9
|
|||
|
|||
Ну фишка в том что надо писать только цифры...а что за ошибка с сокетами ?10061
|
#10
|
|||
|
|||
+1 у меня таже байда, пишет что-то про асинхронизацию сокетов, я так понял это из-за неблокированных потоков... на 1 машине все ок идет, как пытаешся с другой законектится.. пишет ерор 10061 В чем проблема? подскажите пожалуйста
update вообщем все заработало, но проблема непонятна осталась Последний раз редактировалось darkmamba, 19.10.2008 в 14:35. |
#11
|
|||
|
|||
Эта ошибка говорит о том, что вы пытаетесь присоеденить к серверу, а ответа от оного нет.
Я уже скидывал чат на сокетах в теме [link]http://www.delphisources.ru/forum/showthread.php?t=5336[/link] Ставьте одинаковые порты. Жизнь - игра: сюжет фигня... Зато какая графика!!! |