java如何用socket接受和发送数组
1、socket发送的是流,所以必须将byte[]转换成流的形式,之后才可以发送的。
2、直接用连接发送数据,客户端根据指令类别进行响应就可以了。最好将数据 放在一个类里面 包括 数据,指令 等信息。
3、socket传送数据都是用输入输出流来实现的,怎么传送你可以在发送端以固定的长度传送,比如 byte[1024],只要在接收端也以这个长度接受就可以还原数据了。
4、…以上只是一种数据结构,还可以有很多,你可以根据自己的实际情况来决定各个字节的长度。再说写入的情况,把所有的字符串转化成固定长度的byte数组然后直接写入就行了。
5、c++/c接收和发送的都是结构体,而Java是直接发送的字节流或者byte 数组。解决方法:c++/c socket 在发送结构体的时候其实发送的也是字节流。因为结构体本身也是内存中的一块连续数据。
6、即要设置一个死循环。例如:while(1){ //…} 当接收到一个客户端的消息,再为其开辟新的进程进行数据处理。我也只是说个大概,具体建议网络上百度一下socket通信方法,看看人家服务器端是怎么写的。
javasocket只有关闭后才发送数据给服务器
1、你可能没有调用out.flush()方法。
2、客户端关闭了,服务器端需要相应处理。如果是windosws的socket的话,需要处理recv。
3、PrintWriter out = new PrintWriter(socket.getOutputStream());BufferedReader wt = new BufferedReader(new InputStreamReader(System.in));这个只是用来获取一个从键盘的一个流.传送给服务器端的数据都是通过流来表示的。
4、方式(其他方式也基本上都是基于socket的),由于java已经封装的很好了,只要new Socket(IP,port) 就可以 获得,同时,由于原来C 是服务器,而如果没有多个服务器同时向java端发送请求的话,基本连线程处理都不需要做的。
5、两种办法,1)客户端关闭前 先往服务端写一段特定的信息,服务端捕捉后就把该连接关闭。 这样关闭客户端也不会出错。
6、你不会是用serverSocket接收了一次就关掉了吧,这个要一直打开的,写成一个死循环。或者有可能你建立的客户端线程只执行一次。
怎么用java的socket进行文件传输?谁能给个简单的例子,包括发送端和接收…
java编程对于Socket之间的通信过程如下:服务端往Socket的输出流里面写东西,客户端就可以通过Socket的输入流读取对应的内容。
直接流拼接,循环要传输的文件列表,多个InputStream,然后输出到一个OutputStream,这个out就是发送数据的端口,为了接收端能够识别每个文件从而分割流,需要每个流中结尾添加分隔符。其实这就是HTTP文件上传的做法。
首先根据文件名创建File对象。然后根据File对象产生文件输入流对象。建立Socket链接。从Socket得到输出流对象。建立一个byte[]数组作缓冲。然后建立一个While循环,从输入流中读byte[]个缓冲的数据,然后写入输出流。
java多人聊天一般都是怎么搭建的?
1、创建服务器端:使用ServerSocket类创建一个服务器端,并监听指定的端口,等待客户端的连接。创建客户端:使用Socket类创建一个客户端,并连接到服务器端。
2、java多人聊天可以用即构科技的im sdk来搭建,即构的IM产品不仅支持基础的单聊/群聊功能,还支持消息高并发量的房间聊天,单房间人数支持到百万以上。
3、Java 实现聊天室可以分为以下几个步骤:建立服务器端 首先需要建立一个服务器端,负责接收客户端的连接请求并处理客户端发送过来的消息。建立客户端 然后需要建立客户端,客户端通过网络连接到服务器端,并向服务器端发送消息。
关于用JAVA的SOCKET传输文件
1、直接流拼接,循环要传输的文件列表,多个InputStream,然后输出到一个OutputStream,这个out就是发送数据的端口,为了接收端能够识别每个文件从而分割流,需要每个流中结尾添加分隔符。其实这就是HTTP文件上传的做法。
2、通过socket可以用如下方式进行。启动服务端代码。启动客户端自动连接服务端。服务端上传文件,保存文件和路径。将路径发送给连接服务端的客户端。
3、使用Socket可以做到,不过直接编程一般都是在局域网内,如果要在不同局域网间通信,需要使用一台有公网IP的服务器,可以电脑A和电脑B同时连接服务器,然后A向服务器传递文件,服务器再将文件转发电脑B。
4、首先根据文件名创建File对象。然后根据File对象产生文件输入流对象。建立Socket链接。从Socket得到输出流对象。建立一个byte[]数组作缓冲。然后建立一个While循环,从输入流中读byte[]个缓冲的数据,然后写入输出流。