用Socket怎么从服务器向客户端发送消息
首先建议使用一个线程向所有客户端发送消息;
在写一个方法发送消息, 方法里面需要 消息和socket 参数;
Thread tSend= new Thread(SendAll);
private void SendAll()
{
//遍历所有的Socket,调用Send(string msg,Socket socket)方法
//不知道你的Socket放到哪里,如果放到集合就遍历集合挨个调用
}
private void Send(string msg,Socket socket)
{
byte[] buffer = EncodingDefaultGetBytes(msg);
socketSend(buffer);
}
服务器端和客户端都是通过SOCKET来进行通信的,首先产生一个 socket实例,通过这个实例,服务器端调用accept这个方法接收来自客户端发送的信息但是在产生socket实例的时候必须初始化一个端口用来负责接受客户端的请求!
客户端要给服务器发送消息也必须产生一个socket实例,初始化的时候必须指定服务器的IP地址,并且指定服务接收的端口号,这样客户端才能找到服务器要接收的地方,找到地方就可以发送过去了。和你写信一样。找到地址
BufferedReader in = new BufferedReader(new InputStreamReader(socketgetInputStream()));
PrintWriter out = new PrintWriter(socketgetOutputStream());
BufferedReader wt = new BufferedReader(new InputStreamReader(Systemin));
这个只是用来获取一个从键盘的一个流传送给服务器端的数据都是通过流来表示的。意思是是键盘输入的一个字节转化成字符流并输出或者写入!
// server,同时注意socket的close
server=new ServerSocket(PORT);
client=serveraccept();
// client 写法如下
String host = "127001"; // 要连接的服务端IP地址
int port = 8899; // 要连接的服务端对应的监听端口
// 与服务端建立连接
Socket client = new Socket(host, port);
//建立连接后就可以往服务端写数据了
Writer writer = new OutputStreamWriter(clientgetOutputStream());
writerwrite("Hello Server");
writerflush();// 写完后要记得flush
writerclose();
clientclose();
0条评论