I’ve created a chat program which required the user to select either the client or server role. My approach at removing this requirement is to have every user start their own server where they’ll get messages from. This should allow me to have two clients talk to the the other without having to put a server in between them.
Right now I’ve modified my program in such a way that the client side does the sending and the server does the receiving.
Note that communication between the two programs worked perfectly fine up untill these changes. However, now that I’ve changed some stuff an error occurs as early as when I create a socket.
The flow of my program untill the problem is as follows:
- Program starts
- Server starts automatically, binded to local port 6666
- Connection config pops up, user clicks the save button (target host and port are saved)
- User clicks the connect button
- Program creates a client thread
- Thread creates the socket and initiates the outbound stream
After some debugging I’ve found that this socket is never created.
When the flow enters this stage (last item in the list), only the ‘First test’ gets executed.
public void run() {
System.out.println("First test");
createConnection();
System.out.println("Second test");
initiateIO();
}
private void createConnection() {
try {
socket = new Socket(host, port);
} catch (UnknownHostException e) {
OutputUtil.showErrorMessage("Couldn't bind socket to unknown host", "Unknown host");
} catch (IOException e) {
OutputUtil.showErrorMessage("General IO error at creating client socket", "IO error");
}
}
private void initiateIO() {
try {
outbound = new PrintWriter(socket.getOutputStream(), true);
} catch (IOException e) {
OutputUtil.showErrorMessage("Couldn't load IO streams from client", "IO Error");
}
}
Output:
Console: First test
Popup: General IO error at creating client socket
Console: Second test
Console: NPE at `outbound.close()`
I’m assuming the NPE is a result of the first error, considering a method from the socket is invoked when creating the PrintWriter
. It should also be noted that it takes around 10 seconds to show the first error.
At first I thought the error might be introduced because both the local server and the connection with the other client use port 6666, but after creating a link on port 6667 the problem still occurred. Which makes sense upon review.
When my debugger points at the line where outbound
is initialized (after the «second test» message, socket has value null
.
My question is: why can’t the socket be created? The documentation only specifies
IOException — if an I/O error occurs when creating the socket.
which isn’t of much use.
Full source code can be found here for a better overview.
Edit: Printed the stacktrace from the first, main error.
java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at core.Client.createConnection(Client.java:30)
at core.Client.run(Client.java:64)
at java.lang.Thread.run(Unknown Source)
Написал простой клиент на Android, и сервер на C#. Cервер работает как часы, а вот с клиентом проблемы. Ошибка вылетает в момент соединения. Не могу понять, что не так?
client = new Socket("127.0.0.1", 4444);
Полный код выглядит так:
public class MainActivity extends Activity {
private Socket client;
private PrintWriter printwriter;
private EditText textField;
private Button button;
private String messsage;
String ip="127.0.0.1";
int port=4444;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textField = (EditText) findViewById(R.id.textout);
button = (Button) findViewById(R.id.send);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
messsage = textField.getText().toString();
Socket client =null;
textField.setText("");
DataOutputStream dataOutputStream= null;
DataInputStream dataInputStream = null;
try {
client = new Socket("127.0.0.1", 4444);
client.setSoTimeout(100);
dataOutputStream = new DataOutputStream(client.getOutputStream());
dataInputStream = new DataInputStream(client.getInputStream());
dataOutputStream.writeUTF(messsage);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
System.out.println("Got an IOException: " + e.getMessage());
}
}
});
}
}
Зарание благодарю.
задан 2 мая 2015 в 17:32
3
Скорее всего у вас ошибка в том, что вы пытаетесь лезть в сеть с основного потока.
NetworkOnMainThreadExeption
Так нельзя (в новых версиях андроида). Пользуйтесь AsyncTask, например, чтобы работать с сетью в отдельном потоке.
ответ дан 2 мая 2015 в 22:48
ЮрийСПб♦ЮрийСПб
69.8k9 золотых знаков65 серебряных знаков122 бронзовых знака
Код упростил для наглядности. Теперь ошибка не вылетает, но и соединения нет.
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import java.io.IOException;
import java.net.Socket;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View view){
Thread th = new Thread(new Runnable() {
@Override
public void run() {
try {
Socket socket = new Socket("127.0.0.1",4444);
} catch (IOException e) {
e.printStackTrace();
}
}
});
th.start();
}
}
ответ дан 3 мая 2015 в 17:47
1
justjew 0 / 0 / 0 Регистрация: 27.10.2015 Сообщений: 56 |
||||
1 |
||||
28.04.2016, 16:54. Показов 2825. Ответов 15 Метки нет (Все метки)
есть сервер на c#, но не получается законнектиться на него с приложения на Andriod
к тому же exception в консоле пишет null
0 |
2882 / 2294 / 769 Регистрация: 12.05.2014 Сообщений: 7,978 |
|
28.04.2016, 16:56 |
2 |
разрешение в манифесте прописано?
0 |
0 / 0 / 0 Регистрация: 27.10.2015 Сообщений: 56 |
|
28.04.2016, 18:35 [ТС] |
3 |
как прописать разрешение в манифесте?
0 |
Pablito 2882 / 2294 / 769 Регистрация: 12.05.2014 Сообщений: 7,978 |
||||||||
28.04.2016, 18:45 |
4 |
|||||||
что бы долго не объяснять где в файле это писать — вот пример манифеста
нужная строка
0 |
SergioO 260 / 208 / 99 Регистрация: 13.12.2015 Сообщений: 1,098 |
||||
28.04.2016, 19:10 |
5 |
|||
к тому же exception в консоле пишет null если не ошибаюсь, то это означает что исключений не возникло причем, согласно документации (сам без году неделю занимаюсь Андройд), то лучше использовать:
0 |
2882 / 2294 / 769 Регистрация: 12.05.2014 Сообщений: 7,978 |
|
28.04.2016, 19:18 |
6 |
есть сервер на c#, но не получается законнектиться на него с приложения на Andriod эээ стоп, сервер находится тоже на телефоне? если нет то адрес сервера никак не может быть 127.0.0.1 или localhost
0 |
260 / 208 / 99 Регистрация: 13.12.2015 Сообщений: 1,098 |
|
28.04.2016, 19:22 |
7 |
никак не может быть 127.0.0.1 или localhost скорее всего пробует из эмулятора.
0 |
0 / 0 / 0 Регистрация: 27.10.2015 Сообщений: 56 |
|
28.04.2016, 22:55 [ТС] |
8 |
эээ стоп, сервер находится тоже на телефоне? если нет то адрес сервера никак не может быть 127.0.0.1 или localhost сервер на этом же компьютере Добавлено через 25 минут
0 |
260 / 208 / 99 Регистрация: 13.12.2015 Сообщений: 1,098 |
|
28.04.2016, 23:26 |
9 |
походу подсети разные
0 |
0 / 0 / 0 Регистрация: 27.10.2015 Сообщений: 56 |
|
29.04.2016, 00:02 [ТС] |
10 |
походу подсети разные и что можно сделать?
0 |
260 / 208 / 99 Регистрация: 13.12.2015 Сообщений: 1,098 |
|
29.04.2016, 18:08 |
11 |
надо чтобы адреса и подсети согласовывались. Добавлено через 17 часов 47 минут
0 |
0 / 0 / 0 Регистрация: 27.10.2015 Сообщений: 56 |
|
29.04.2016, 18:40 [ТС] |
12 |
Приеду домой с работы, попробую. Ещё за одно сделаю с asyncTask, а то я просто заимплеметил от runnable
0 |
SergioO 260 / 208 / 99 Регистрация: 13.12.2015 Сообщений: 1,098 |
||||
29.04.2016, 19:10 |
13 |
|||
попробовал сокеты.
0 |
justjew 0 / 0 / 0 Регистрация: 27.10.2015 Сообщений: 56 |
||||||||
29.04.2016, 20:06 [ТС] |
14 |
|||||||
а у Вас С# что там на серверном сокете? IIS на 80 порту? Сервер нагло сп….ил, выглядит он вот так Кликните здесь для просмотра всего текста
0 |
260 / 208 / 99 Регистрация: 13.12.2015 Сообщений: 1,098 |
|
29.04.2016, 20:17 |
15 |
через телнет пробовали серверную часть тестить? Добавлено через 8 минут
0 |
0 / 0 / 0 Регистрация: 27.10.2015 Сообщений: 56 |
|
29.04.2016, 20:19 [ТС] |
16 |
connected!
0 |
инструкции
|
|
To Fix (Socket Error) error you need to |
|
Шаг 1: |
|
---|---|
Download (Socket Error) Repair Tool |
|
Шаг 2: |
|
Нажмите «Scan» кнопка | |
Шаг 3: |
|
Нажмите ‘Исправь все‘ и вы сделали! | |
Совместимость:
Limitations: |
Ошибка сокета обычно вызвано неверно настроенными системными настройками или нерегулярными записями в реестре Windows. Эта ошибка может быть исправлена специальным программным обеспечением, которое восстанавливает реестр и настраивает системные настройки для восстановления стабильности
Если у вас есть Socket Error, мы настоятельно рекомендуем вам
Скачать (Socket Error) Repair Tool.
This article contains information that shows you how to fix
Socket Error
both
(manually) and (automatically) , In addition, this article will help you troubleshoot some common error messages related to Socket Error that you may receive.
Примечание:
Эта статья была обновлено на 2023-01-24 и ранее опубликованный под WIKI_Q210794
Значение ошибки Socket?
Ошибка или неточность, вызванная ошибкой, совершая просчеты о том, что вы делаете. Это состояние неправильного суждения или концепции в вашем поведении, которое позволяет совершать катастрофические события. В машинах ошибка — это способ измерения разницы между наблюдаемым значением или вычисленным значением события против его реального значения.
Это отклонение от правильности и точности. Когда возникают ошибки, машины терпят крах, компьютеры замораживаются и программное обеспечение перестает работать. Ошибки — это в основном непреднамеренные события. В большинстве случаев ошибки являются результатом плохого управления и подготовки.
Причины ошибки сокета?
If you have received this error on your PC, it means that there was a malfunction in your system operation. Common reasons include incorrect or failed installation or uninstallation of software that may have left invalid entries in your Windows registry, consequences of a virus or malware attack, improper system shutdown due to a power failure or another factor, someone with little technical knowledge accidentally deleting a necessary system file or registry entry, as well as a number of other causes. The immediate cause of the «Socket Error» error is a failure to correctly run one of its normal operations by a system or application component.
More info on
Socket Error
РЕКОМЕНДУЕМЫЕ: Нажмите здесь, чтобы исправить ошибки Windows и оптимизировать производительность системы.
Try moving the NIC to a different slot.
Does Device Manager show any errors for the NIC? I know this has something to do with the account on my pc game it says socket err. Any help would be greatly appreciated.
Всякий раз, когда я пытаюсь войти на свой IP-адрес, но я не знаю этого.
ошибка сокета при несетевой проблеме
I properly opened the correct says «socket error on non socket». I get a message that problem or a software problem? The control panel, system , device I am able to view video in this am unable to upload or download .jpeg files.
Это аппаратная сеть через маршрутизатор Lynksys. Любой менеджер говорит, что все работает правильно. У меня только одна проблема. Благодарю.
программы, но я не могу отправлять или получать фотографии.
При использовании программы под названием paltalk, адаптер Acer Lan ALN 201 PCI ethernet.
I am using a TCP/IP — it before. I am hooked to the ports on the router homepage. Haven’t seen suggestions?
Ошибка получения файла информации об обновлении Ошибка сокета #11004
firefox 2.0.0.20 открытие странного поиска было действительно занято. страниц вместо желаемой страницы. Пожалуйста, сообщите форуму новый журнал dds.
Если вам все еще нужна помощь в этом
XP OE 6.00.2900.2180 — Ошибка сокета: 10053, номер ошибки: 0x900CCC0F
Когда я нажимаю send и получаю все 3, я получаю следующую ошибку:
Твой конец.
Хорошо, я избегаю перестройки, если это вообще возможно.
Любой сервер неожиданно прекратил соединение.
еще? Я сделал Hijack Это, Ad-Aware, Spybot, Ewido и больше проблем сканирования и / или серьезных проблем. Это действительно то, что я хотел бы учитывать, что у пользователя есть что-то не получить. Возможными причинами этого могут быть проблемы с сервером, проблемы с сетью или длительный период бездействия.
Отправить проблему с Windows Mail. Ошибка сокета: 10060, номер ошибки: 0x800CCC0E
Привет, я просмотрел все темы обсуждения и попробовал Йорк, и теперь я использую другого провайдера для подключения к Интернету. Не только номера портов, но и все другие настройки.
Я могу получать электронную почту почти каждое предложение, но до сих пор не имел никакой удачи. новый поставщик электронной почты, чтобы получить правильные настройки.
Тема «Тест», Учетная запись: «O2 Email», Сервер: «smtp.o2.co.uk», Протокол: SMTP, Порт: 25, Secure (SSL): но не может отправлять. благодаря
You must go to the website of What triggered this error is that, I recently moved from London to New No, Socket Error: 10060, Error Number: 0x800CCC0E»
Любая помощь будет высоко ценится.
ошибка выражения outlook 0x800ccc0e и ошибка сокета 10013
Now set up an email for the new user.Here are the instructions from Microsoft.http://windows.microsoft.com/en-US/windows-vista/Windows-Mail-setting-up-an-account-from-start-to-finishIf Before you do that, here is the new user works fine, this means the old user account got corrupted. Reboot and log something less destructive.Create a new user account.
в нового пользователя.
Решение: Ошибка сокета: 10065, Номер ошибки: 0x800CCC0E
Account: ‘Joint French’, Server: ‘pop.orange.fr’, Protocol: POP3, Port: 110, Secure(SSL): a recommended registry cleanup took and/or can you suggest anything else I can try? Socket error 10065 from Outlook Express
Hi, for the last few days we have been receiving «The connection to the server has failed.
Поиск в Интернете подразумевает, что это может быть запись реестра broekn, но есть ли эта проблема, поскольку заголовок был неправильным. Очень признателен
Just for completeness — I found the No, Socket Error: 10065, Error Number: 0x800CCC0E» from Outlook Express.
Извините, но мне пришлось повторно отправить причину ошибки не было ничего общего с портами.
W98SE-getting socket error 11001 & error number 0x800CCC0D
Ошибка сокета: 10060, номер ошибки: 0x800CCC0E
Поскольку мой puter находится на том же кабеле, что и мой телефон, мне нужен SERVER — ваш SMTP-сервер, который вы используете в Outlook Express для своей учетной записи MSN).
Я не могу отправить свою учетную запись MSN; которые пингоруют ваш SMTP-сервер. Возможно, вы используете одновременное использование телефона, ожидание вызова и puter. Без перемещения сообщений из учетной записи msn, подключающихся к серверу или соединения, происходит тайм-аут.
Дайте мне знать, если вы перетаскиваете то, что попало в этот почтовый ящик. Это был вопрос включения и выключения), может также мешать? Попробуйте превратить сервер, и вы не можете этого сделать?
В решении, которое я видел, указано, что оно есть или отправляется на один из моих других адресов электронной почты.
You can try to them off temporarily. This error does not happen when I am forwarding since Windows Live took over my old Outlook Express. Lastly you have to authenticate to the SMTP Socket Error: 10060, Error Number: 0x800CCC0E. Your firewall (if you have a problem when you have «call waiting» on your line.
I get the error: get a reply or not. Go to start — run — type «ping MSN smtp SERVER» (where MSN smtp to another email, is there a better way? Socket Error: 10060, Error Number: 0x800CCC0E usually means there is a wrong port to send emails?
Ошибка сокета Windows 10055 и ошибка приложения
Нажмите OK, чтобы завершить программу.
Then it closes down something that I didn’t even know was running. Any I just uninstalled the program not be «written».
I keep receiving at «0x012220a7» referenced memory at «0x01260b30». In addition to that error, I have Windows Socket Error 10055. It usually goes like this:
Инструкция после получения ошибки TRSDKd. Память может прерывать программу.
Click on OK to thoughts? been receiving Application Errors for various programs. I know this is very vague, but not be «written». The memory could anything that can help would be greatly appreciated.
Ошибка ошибки Cobian 8 Ошибка сокета.
Любые
Спасибо,
грязь
предложения ??
При запуске программного обеспечения для резервного копирования Cobian 8 я получаю PM проверку новых версий, Socket Error
11004
Ошибка сокета Win
Ошибка Socket.OCX
Чтобы узнать программу, с которой связан этот файл, просто выполните поиск: файл, безусловно, хранится в каталоге программы.
Ваша версия socket.ocx может быть устаревшей. Убедитесь, что вы используете версию элемента управления, предоставленного вашим приложением.
Ошибка веб-сокета
Может кто-нибудь, пожалуйста, объясните мне, что это значит и что вызывает это:
SCRIPT12030: SCRIPT12030: ошибка WebSocket: ошибка сети 12030, соединение с сервером было прервано ненормально
TIA, Ричард
Ошибка сокета OE
Менеджер спама получает мою почту, но не Outlook Express,
Я закрыл Интернет в порядке.
При попытке проверить почту с Outlook Express я получил следующую ошибку:
Не удалось подключиться к серверу.
I can access dome the Spam program and my firewall and that didn’t help either..
MSI K8MM-V Socket 754 Motherboard & MD Sempron 3000+ 64-bit CPU, 1.8GHz, SOCKET 754
Я загрузил ОС на нем, все было хорошо для еще … Я планировал сохранить башню в качестве резервной минуты от начала до конца), он перезапустил мой компьютер. В соответствии с инструкциями вентилятора процессора, материнская плата с термопастой, которую они установили, была неисправной. Критические обновления, другие утилиты) компьютер (с некоторой силой) на полу моего офиса.
Я наблюдал за Адамом на всякий случай, когда моя новая башня скончалась. Даже НЕ МЕРТВЫЙ, однако, возможно, что-то я упустил. Я еще раз сказал ему, что это материнская плата в моей компьютерной башне. Единственная проблема в том, что батарея CMOS для 15 минут и удалить JBAT1 за 15 секунд, так что я и сделал.
У меня была одна компьютерная башня, но у нас здесь нет BBB.
G’Day — I would not waste time on it. He then took my computer tower away, fan with the new one. He would install a new back with the bill is spot on. I am still looking into buying a brand Fan, due to my inability o leave the house because of a broken leg.
After several phone calls by myself, he said either the CPU no longer work. I think your idea of sending it new mobo and CPU, and putting it together myself. noisy due to an old CPU Fan. Don’t forget to lay it on thick that you
It would PS I hope this doesn’t saying he would need to ?run further tests?. He then replaced the old needed to be applied evenly over the heatsink, before application. Albert (Whinging Pom) Lionheart
…
ошибка сокета 10061
Где-то еще я должен смотреть?
Привет и приветствуем, когда наш интернет-провайдер непреднамеренно нарушил нашу офисную сеть.
I am trying to fix a network error that program but the last computer gives me an error or Socket error 10061 connection refused. We were able to get 3 of the 4 computers to work with the started and restarted the network and still it didn’t work. I checked the windows firewall and its off i TSGF this is from ms http://support.microsoft.com/kb/191687
это немного информации http://help.globalscape.com/help/cuteftppro6/socket_error_=__10061.htm
Что вызывает ошибку сокета 12019
Я получаю Socket Error 12019 Номер ошибки: 0x80004005 каждый раз отлично работает, но получает ошибку при вложении. Если я просто отправлю файл, вам удастся найти исправление. У меня не было сервера, отказавшегося выполнить указанную операцию
По-видимому, они не поддерживают эту функцию.
12019 ptOperationRefused Я использую Outlook Express с моей учетной записью Hotmail для отправки вложений.
Ошибка сокета Pop3
Мне было интересно, есть ли в одной учетной записи pop3. Есть несколько псевдонимов, которые устанавливают pop3 для удаления почты. Но я все еще получаю ошибки сокета, почему-то я могу просматривать сайты за рубежом, но
Я попытался изменить тайм-аут с 1 минута, когда новая имеет ограниченную международную пропускную способность. Я не могу получить почту (ошибка сокета).
Hi
Я недавно изменил ISP и любые другие хитрости, которые я могу попробовать. Я предпочитаю использовать особенно при загрузке больших писем.
С наилучшими пожеланиями,
до 5 минут, и некоторые электронные письма были загружены.
Ошибка сокета 10107, пожалуйста, помогите!
Hi
Ok, i know i posted about hibernate not my usb mouse malfunctioned & everything froze! If i say ‘don’t send’, my computer makes noises & one of this as its a real nightmare! My pc was running ok until at all even though my router is ok! I can’t get online with broadband or dial-up on my usual pc at all!
Когда я пытаюсь получить почту, я получаю сообщение об ошибке сокета 10107 ‘
I had to close & i get chance to send or don’t send report to microsoft! I can’t go online or receive mail help:
http://answers.yahoo.com/question/index?qid=20100917061445AAWg2S7
When i reboot, i get ‘firewall.exe’ has encountered a problem & must uninstall my firewall & i think it’s left some remnants & corrupted my pc! This might working & i will go there in a bit!
I’ve tried system the green lights on the front goes really fast, not the power light! Can anyone help me with restore & nothing!
Ошибка сокета в IncrediMail.
Есть идеи?
Do you have support it I installed Outlook Express. Do you have the correct port specified the correct outgoing server specified? Socket Error: 10061 , Port: 25, Protocol: SMTP.No connection the same error. I can received email but can’t send.
Because my Internet company won’t could be made because the target machine actively refused it.
Я получаю эту ошибку в IncrediMail. Я получаю (обычно 25, но может быть другим)?
Я пробовал обновлять каждую вещь, удалял Zone Alarm и разное программное обеспечение.
#include <sys/types.h>
#include <winsock.h>
#include <stdio.h>
#include <iostream>
#include <locale>
#include <windows.h>
#pragma comment (lib,"Ws2_32.lib")
using namespace std;
int main(void)
{
setlocale(LC_ALL, "Russian");
struct sockaddr_in local;
int s;
int s1;
int rc;
char buf[1];
local.sin_family = AF_INET;
local.sin_port = htons(7500);
local.sin_addr.s_addr = htonl(INADDR_ANY);
s = socket(AF_INET, SOCK_STREAM, 0);
if (s < 0)
{
perror("ошибка вызова socket");
exit(1);
}
rc = bind(s, (struct sockaddr*) & local, sizeof(local));
if (rc < 0)
{
perror("ошибка вызова bind");
exit(1);
}
rc = listen(s, 5);
if (rc)
{
perror("ошибка вызова listen");
exit(1);
}
s1 = accept(s, NULL, NULL);
if (s1 < 0)
{
perror("ошибка вызова accept");
exit(1);
}
rc = recv(s1, buf, 1, 0);
if (rc <= 0)
{
perror("ошибка вызова recv");
exit(1);
}
printf("%cn", buf[0]);
rc = send(s1, "2", 1, 0);
if (rc <= 0)
perror("ошибка вызова send");
exit(0);
}
Есть вот такой вот код и сообственно говоря при запуске в консольку выдаётся вот такая штука:
А также при пошаговой прогонке кода, было обнаружено что сокет при создании равен -1 (s=-1)
Что сообственно говоря не так?