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实现客户端与服务端双向连接问题
//服务端程序://服务器测试结果:
客户端: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实现客户端的功能
//服务端程序://服务器测试结果:
客户端: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();
}