导航:首页 > IDC知识 > socket服务器发消息

socket服务器发消息

发布时间:2021-01-19 03:45:13

1、linux下,socket服务器和客户端TCP方式建立了连接,如何使它们之间相互发送消息?

1.可能是在获取复客户端的ip和端口时,处制理出现问题,导致无法正确发送到客户端。
2.客户端是否使用固定的端口来接收服务器信息,或服务器是否正确发送到客户端的相应的端口。
3.通过上面分析,最大可能是在处理端口出现问题,请重新检查。
4.实在不行,最好使用抛出异常方法来捕获错误消息,或是通过一步一步调试分析数据发送过程。

2、C语言Socket服务器怎么给客户端发消息

你的文件中的问题
// 会阻塞进程,直到有客户端连接上来为止
// 既然是直到有客户端连接上,那么就要弄明白哪个是与客户端连接的套接字
// sockClient就是与客户端连接的套接字
sockClient = accept(sockServer, (SOCKADDR*)&addrClient, &len);
//接收并打印客户端数据
recv(sockClient, recvBuf, 100, 0);
printf("%s\n", recvBuf);
// 所以此处,应该把sockServer改为sockClient
send(/*sockServer*/sockClient, sendBuf, 100, 0);

PS:服务器客户端通信,是要保持服务器与客户端的连接。
而不能这样立即关闭,如果设置不对,立即关闭,缓冲区的数据是会丢失的。那客户端也就不会再收到数据了。
你可以加Sleep(10000);来测是通信过程
//关闭socket
closesocket(sockClient);

3、用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 = Encoding.Default.GetBytes(msg); socket.Send(buffer); }

4、C语言socket编程要怎么实现服务器可以发消息给客户端?

先要理解socket是什么?
简单的说socket是一个全双工的通信通道,
即使用TCP或者UDP通信时均可以在发送消息的同时接受消息,
它不区分是否是服务器。
根据这个概念你的问题就很好回答。
》当客户端与服务器连接后。有什么方法使服务器可以随时随地发消息给客户端?
》我现在只能。客户端发个消息给服务器。服务器才能发个消息给客户端。也就是说客户端不发消息。服务器就没法发消息给客户端。
》求大牛给个思路。当连接后。客户端与服务器双方可以随时随地通信!
使用多线程,一个维持接受逻辑,一个维持送信逻辑,即可完成同时接受及发送。
客户端及服务器端均做上述设置。
而你的做法是在一个线程中执行接受与送信,因此只能按照顺序逻辑完成接收与送信。
关键点是多线程。

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

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

6、socket 服务器给指定的客户端发消息该怎么处理

socket
服务器给抄指定的客户端发消息该怎么处理(tcp)(c语言)
多个客户端之间进行通讯,通过服务器转发的形式,现在客户端1请求向客户端2发送消息,先把消息发送到服务器,服务器怎么才能把消息转发到客户端2而不是转发给客户端3或者他自己。

7、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();
}

8、C# socket 服务器端 如何向所有的客户端发送消息(服务器拥有客户端的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 = Encoding.Default.GetBytes(msg);
socket.Send(buffer);
}

9、socket 服务器给指定的客户端发消息该怎么处理

这种做法是不是只有在客户端连接到服务器才可以,如果没有连接到服务器,在用户列表就回找不到对应答的socket,这样就不可以发送了,是不是这样?如果我想在客户端没有连接到服务器的情况下发送信息给该客户端(这个时候可能在服务器端保存这个信息吧,但是怎么保存这个信息呢?是保存在数据库还是在内存中?),然后当该客户端连接上服务器后就把这个信息发给他.有没有这种做法,应该怎么做?

10、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));
这个只是用来获取一个从键盘的一个流.传送给服务器端的数据都是通过流来表示的。意思是是键盘输入的一个字节转化成字符流.并输出或者写入!

与socket服务器发消息相关的知识