Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > Socket клиент и сервер.


Автор: Igo 7.3.2008, 12:02
В исходниках клиента и сервера, не могу понять причину ошибки ( По одной на исходник). Помогите пожалуйста.
Клиент
Код

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

public class SocketClient
{
    public static void main (String[] args)
    {
        try
        {
            Socket s = new Socket("time-A.timefreq.bldrdoc.gov",13);
            {
                try
                {
                    InputStream inStream = s.getInputStream();
                    Scaner in = new Scaner(inStream);
                    
                    while(in.hasNextLine())
                    {
                        String line = in.nextLine();
                        System.out.println(line);
                    }
                }
                finally
                {
                    s.close();
                }
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }
    }    


Сервер
Код

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

public class SocketServer
{
    public static void main(String[] args)
    {
        try
        {
            ServerSocket s = new ServerSocket(8191);
            Socket incoming =s.accept();
            try
            {
                InputSrteam inStream = incoming.getInputStream();
                OutputStream outStream = incoming.getOutputStream();
                
                Scanner in = new Scanner(inStream);
                PrintWriter out = new PrintWriter(outStream, true);
                
                out.println("Hello! Enter BYE to exit.");
                
                boolean done = false;
                while(!done && in.hasNextLine())
                {
                    String line = in.nextLine();
                    out.println("Echo: " + line);
                    if (line.trim().equals("BYE"))
                        done = true;
                }
            }
            finally
            {
                incoming.close();
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}    

Автор: Sigertheit 7.3.2008, 19:28
лишняя скоба... после создания сокета  smile 
Напишите хоть шо там в printstacktrace ..... а то у вас какой-то класс Scaner - мы ведь так и компильнуть не можем...

Насчет сервера... у вас он ждет как одно только обращение или может быть многократное.??... если многократное,то надо типа щось такого
Код

 while(true){
  socket = serversocket.accept();  
}


так он сможет ожидать следующее обращение после обработки предыдущего....

ну и если сервер будет с интерфейсом или там выполнять параллельную какую-нибудь работы то надо в Threa'ы усе.... а то так все будет подвисать из-за accept()

А так в общем без компиляция, для которой надо класс сканер.. сложно сказать.... и насчет порта 13 ... порты  не помню до какого номера - использовать не рекомендуется... желательно брать тысячные ...
и проверьте также браундмаузер

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)