Как я могу изменить этот код, чтобы моя программа-сокет клиента отправляла строку на сервер? - PullRequest
0 голосов
/ 03 февраля 2012

Привет, я написал некоторый код для подключения к серверу с помощью сокета.Я хотел бы написать некоторый простой код, который позволяет мне отправлять строку на сервер, предполагая, что это будет включать потоки ввода и вывода, но я новичок в этом.Ниже приведен код, с которым я работаю, любые идеи о том, как лучше всего это сделать, были бы великолепны.

import java.net.*;
import java.io.*;

public class SocketMarket
{
   public static void main(String [] args)
   {
      String serverName = "XX.X.X.XXX";
      int port = XXXX;

      try
      {
         System.out.println("Connecting to " + serverName + " on port " + port);
         Socket client = new Socket(serverName, port);

         System.out.println("Connected to " + client.getRemoteSocketAddress());        
      }

      catch(IOException e)
      {
         e.printStackTrace();
      }       
   }
}

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 03 февраля 2012

Insight здесь, «действительно большой индекс» для Java.

http://docs.oracle.com/javase/tutorial/networking/sockets/readingWriting.html

0 голосов
/ 03 февраля 2012

Да, это включает OutputStream с. Если вы хотите вывести String s, вы можете записать необработанные байты через OutputStream, полученное из соединения, но тогда вы полностью потеряете контроль над кодированием. Сначала вы должны узнать о ридере / писателе / ​​потоках, а затем просто установить сеть через сокеты. Вы можете найти соответствующую часть руководств по Java здесь: http://docs.oracle.com/javase/tutorial/essential/io/ (вы можете полностью игнорировать часть NIO для начала). После этого вы можете узнать о сокетной сети: http://docs.oracle.com/javase/tutorial/networking/sockets/index.html.

0 голосов
/ 03 февраля 2012
client.getOutputStream().write("Hello World".getBytes());
client.getOutputStream().flush();

Выше показано, как вы бы отправили просто String, но вы, вероятно, захотите создать некоторую инфраструктуру для отправки произвольного текста.

Общая идея заключается в том, что ваш сервер и клиент будут связываться друг с другом, используя InputStream и OutputStream, к которым можно получить доступ с Socket через getInputStream() getOutputStream(), как только связь между ними установлена.

Чтобы сервер получал соединения, вы должны использовать ServerSocket - accept() входящих соединений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...