导航:首页 > IDC知识 > javasocket客户端服务器

javasocket客户端服务器

发布时间:2021-01-13 23:42:26

1、java socket编程 服务器和客户端程序都连接不上,急急,谢谢,好人好报

你测试通过过最建单的 网络链接服务吗?
先不要 frame 形式的
命令行的

Java » 网络协议

网络协议 屏幕截图
认证( 7 ) 压缩连接( 1 ) 网络爬虫( 2 ) 数据包( 5 ) 数据网络套接字( 14 ) 电子邮件( 11 )
Ftp( 14 ) HTML解析器( 10 ) Http加密连接( 5 ) Http链接( 23 ) 链接( 2 ) 国家地域名( 1 )
IP地址( 18 ) JNLP网络启动( 10 ) MIME类型( 1 ) 调制解调器( 4 ) 网络命令( 7 ) 网络接口( 6 )
输入输出包套接字( 8 ) 呼叫( 2 ) 代理服务器( 1 ) 代理( 3 ) RMI( 5 ) 服务器( 17 )
服务器套接字( 16 ) 服务器套接字管道( 1 ) SMTP协议( 3 ) 嗅探器( 1 ) 套接字( 24 ) 套接字地址( 1 )
SSL服务器套接字( 11 ) TCP连接( 8 ) 远程登录( 2 ) UDP连接( 10 ) 网址( 25 ) 网络连接( 15 )
URL解码( 1 ) 公具( 4 ) 各种客户端( 4 ) 网页表格( 1 ) Web服务器客户端( 11 ) Web服务器( 5 )

具体代码实例在链接里。
http://www.1java2c.com/CN/Code/Java/Network-Protocol/CatalogNetwork-Protocol.htm

2、JAVA服务器与客户端的socket通信问题

你可以在每个用户连上服务器端时,都发送一个消息,就是用4个字节表示是用专户的ID,并将与属用户通信的socket,用一个HashMap存储起来,而不是用LinkList。<ID,Socket>

后面如果A发送消息给C,就把A的前四个字节(即ID)取出来,在HashMap中找到与C通信的socket,然后把消息通过socket发送出去···· 这部分代码应该很容易实现的,Socket通信这东西,理清了思路就很好弄了~~

3、java中用socket实现客户端与服务端双向连接问题

//服务端程序:
import java.io.*;
import java.net.*;

public class TCPServer {
public static void main(String[] args) throws IOException {
 TCPServer().init();
}
@SuppressWarnings("static-access")
private void init() throws IOException{
@SuppressWarnings("resource")
ServerSocket server = new ServerSocket(1000);
Socket client = null;
while(true){
try {
client = server.accept();
BufferedInputStream bis = new BufferedInputStream(client.getInputStream());
byte[] b = new byte[1024];
int len = 0;
String message = "";
while((len=bis.read(b))!=-1){
message = new String(b,0,len);
System.out.print("客户端:"+client.getInetAddress().getLocalHost().getHostAddress()+"发来消息:" + message);
if("byte".equals(message.trim()))
client.close();
PrintWriter pw = new PrintWriter(client.getOutputStream(),true);
pw.println(message);
}
} catch (Exception e) {
System.err.println("客户端:"+client.getInetAddress().getLocalHost().getHostAddress()+" 已断开连接!");
}
}
}
}//客户端程序:
import java.io.*;
import java.net.Socket;

public class TCPClient implements Runnable{
public static void main(String[] args) throws IOException {
new TCPClient().init();
}
private void init() throws IOException{
@SuppressWarnings("resource")
final Socket client = new Socket("127.0.0.1",1000);
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String send = "";
while(true){
send = in.readLine();
PrintWriter out = new PrintWriter(client.getOutputStream(),true);
if(!"byte".equals(send.trim()))
out.println(send);
else{
out.println(send);
System.exit(0);
}
new Thread(new TCPClient(){
@SuppressWarnings("static-access")
public void run(){
try {
BufferedInputStream bis = new BufferedInputStream(client.getInputStream());
byte[] b = new byte[1024];
int len = 0;
while((len=bis.read(b))!=-1){
System.out.println("服务器:" +client.getInetAddress().getLocalHost().getHostAddress()+"发来消息:"+new String(b,0,len).trim());
}
} catch (IOException e) {
System.err.println("连接服务器失败!");
}
}
}).start();
}
}
public void run() {}
}

//服务器测试结果:

客户端:192.168.0.200发来消息:001 byte

客户端:192.168.0.200发来消息:byte

客户端:192.168.0.200 已断开连接!

客户端:192.168.0.200发来消息:adasd

客户端:192.168.0.200 已断开连接!

//客户端测试结果:

---001号客户端--

001 byte

服务器:192.168.0.200发来消息:001 byte

byte //001礼貌说跟服务器说byte

---002号客户端--

adasd //002客户端直接关闭程序

服务器:192.168.0.200发来消息:adasd

4、java socket 客户端是如何向服务器端发送消息的

服务器端和客户端都是通过SOCKET来进行通信的,首先产生一个 socket实例,通过这个实例,服务器端调用accept这个方法接收来自客户端发送的信息.但是在产生socket实例的时候必须初始化一个端口.用来负责接受客户端的请求!
客户端要给服务器发送消息也必须产生一个socket实例,初始化的时候必须指定服务器的IP地址,并且指定服务接收的端口号,这样客户端才能找到服务器要接收的地方,找到地方就可以发送过去了。和你写信一样。找到地址
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

PrintWriter out = new PrintWriter(socket.getOutputStream());

BufferedReader wt = new BufferedReader(new InputStreamReader(System.in));
这个只是用来获取一个从键盘的一个流.传送给服务器端的数据都是通过流来表示的。意思是是键盘输入的一个字节转化成字符流.并输出或者写入!

5、用Java 的socket实现客户端的功能

//服务端程序:
import java.io.*;
import java.net.*;
 
public class TCPServer {
    public static void main(String[] args) throws IOException {
        new TCPServer().init();
    }
    @SuppressWarnings("static-access")
    private void init() throws IOException{
        @SuppressWarnings("resource")
        ServerSocket server = new ServerSocket(1000);
        Socket client = null;
        while(true){
            try {
                client = server.accept();
                BufferedInputStream bis = new BufferedInputStream(client.getInputStream());
                byte[] b = new byte[1024];
                int len = 0;
                String message = "";
                while((len=bis.read(b))!=-1){
                    message = new String(b,0,len);
                    System.out.print("客户端:"+client.getInetAddress().getLocalHost().getHostAddress()+"发来消息:" + message);
                    if("byte".equals(message.trim()))
                        client.close();
                    PrintWriter pw = new PrintWriter(client.getOutputStream(),true);
                    pw.println(message);
                }
            } catch (Exception e) {
                System.err.println("客户端:"+client.getInetAddress().getLocalHost().getHostAddress()+" 已断开连接!");
            }
        }
    }
}//客户端程序:
import java.io.*;
import java.net.Socket;
 
public class TCPClient implements Runnable{
    public static void main(String[] args) throws IOException {
        new TCPClient().init();
    }
    private void init() throws IOException{
        @SuppressWarnings("resource")
        final Socket client = new Socket("127.0.0.1",1000);
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String send = "";
        while(true){
            send = in.readLine();
            PrintWriter out = new PrintWriter(client.getOutputStream(),true);
            if(!"byte".equals(send.trim()))
                out.println(send);
            else{
                out.println(send);
                System.exit(0);
            }
            new Thread(new TCPClient(){
                @SuppressWarnings("static-access")
                public void run(){
                    try {
                        BufferedInputStream bis = new BufferedInputStream(client.getInputStream());
                        byte[] b = new byte[1024];
                        int len = 0;
                        while((len=bis.read(b))!=-1){
                            System.out.println("服务器:" +client.getInetAddress().getLocalHost().getHostAddress()+"发来消息:"+new String(b,0,len).trim());
                        }
                    } catch (IOException e) {
                        System.err.println("连接服务器失败!");
                    }
                }
            }).start();
        }
    }
    public void run() {}
}

//服务器测试结果:

客户端:192.168.0.200发来消息:001 byte

客户端:192.168.0.200发来消息:byte

客户端:192.168.0.200 已断开连接!

客户端:192.168.0.200发来消息:adasd

客户端:192.168.0.200 已断开连接!

//客户端测试结果:

---001号客户端--

001 byte

服务器:192.168.0.200发来消息:001 byte

byte //001礼貌说跟服务器说byte

---002号客户端--

adasd //002客户端直接关闭程序

服务器:192.168.0.200发来消息:adasd

6、java socket服务器发送信息给指定的客户端,在线等

是tcp还是udp啊?socket连接可以指定ip和端口啊,所以服务端即使有N个socket连接都不怕,知道端口就行了

7、在java中如何用Socket 进行 服务器端和客户端交互的,具体一点。

打横杠是因为那个方法已经过时了现在已经不怎么用了。。。
Socket 服务器: 1先创建 ServerSocket ss = new ServerSocket(端口号)

2 接收请求 Socket s = ss.accept()

3接收消息 先读后写BufferedReader in = new BufferedReader(
new InputStreamReader(s.getInputStream(),"utf-8"));
String str = in.readLine(); PrintWriter out = new PrintWriter
( new BufferedWriter( new OutputStreamWriter(s.getOutputStream())),true);
out.println("服务器信息");

4关闭流out.close();
in.close();
is.close();

客户端 1、通过IP地址和端口实例化Socket,请求连接服务器
2、获取Socket上的流以进行读写。
3、对流包装进BufferedReader/PrintWriters实例
4、关闭打开的流

8、java socket服务器怎么给所有客户端发系统消息

将链接过来的socket保存,需要广播时遍历发送:
在server主类中版定义private static List<Socket> sos=new ArrayList<Socket>();并添加getset方法,在server线程类的构权造方法中:
public ServerThread(Socket s,List<ShipMes> ships){
this.s=s;
this.ships=ships;
ss.setSos(s);
}
需要广播时:
List<Socket> sos=ss.getSos();
Iterator<Socket> i=sos.iterator();
Socket temps=null;
while(i.hasNext()){
temps=(Socket)i.next();
os=new PrintWriter(temps.getOutputStream());
os.println(mess);
os.flush();
}

与javasocket客户端服务器相关的知识