Python 官方文档:入门教程 => 点击学习
as3 与java 都提供了Socket类用于网络通信, 但两者的使用也有较大的不同. 为了方便两者的通信, 我在做了一些实验的基础上, 写下获得的经验,以免忘记.as3 的socket 读写数据方法常用的有四个: readUTF, wri
as3 与java 都提供了Socket类用于网络通信, 但两者的使用也有较大的不同. 为了方便两者的通信, 我在做了一些实验的基础上, 写下获得的经验,以免忘记.
as3 的socket 读写数据方法常用的有四个: readUTF, writeUTF, readUTFBytes, writeUTFBytesjava 的socket 输入输出流常用BufferedReader 和 DataOutputStream 包装, 以提高读写效率
如:
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
DataOutputStream writer = new DataOutputStream(socket.getOutputStream());
as3 方写数据时用writeUTFBytes 方法, 此时java 方读数据用reader.readLine() 阻塞式方法.
as3 方写数据时用writeUTF方法, 此时java 方应改用DatainputStream 类包装输入流, 因为BufferedReader 不提供读取UTF数据的方法.
java 方写数据时用writeUTF方法, 此时as3 方读数据用readUTF方法, 但此种模式有个弊端, 就是如果java方连续调用了n(n >= 2)次writeUTF方法,而as3方因来不及读取, 则最后只是第一次写入的数据被读取.
java 方写数据时用writeBytes, 此时as3 方读数据用readUTFBytes方法读取数据, 可以这样读取: msg = socket.readUTFBytes(socket.bytesAvailable).
一个简单的例子:
// as3 写的客户端
package test
{
import flash.display.MovieClip;
import flash.net.Socket;
import flash.events.ProgressEvent;
import flash.events.ioErrorEvent;
public class TestSocket extends MovieClip
{
private var socket:Socket;
private var msg:String;
public function TestSocket() {
init();
}
private function init() {
socket = new Socket("localhost", 60000);
socket.addEventListener(ProgressEvent.SOCKET_DATA, readMsg);
socket.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
}
private function readMsg(e:ProgressEvent) {
msg = socket.readUTF();
trace("message:" + msg);
}
private function errorHandler(e:IOErrorEvent) {
trace(e.toString);
}
}
}
//java 写的服务器端
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class TestSocket {
private ServerSocket socketServer;
private Socket client;
private DataOutputStream writer;
private BufferedReader reader;
public static void main(String[] args) {
int socketPort = 60000;
TestSocket test1 = new TestSocket(socketPort);
}
public TestSocket(int socketPort) {
try {
socketServer = new ServerSocket(socketPort);
System.out.println("server is setted up");
while (true) {
client = socketServer.accept();
//wrap input and output stream
writer = new DataOutputStream(client.getOutputStream());
reader = new BufferedReader(newInputStreamReader(client.getInputStream()));
//send message to client
writer.writeUTF("hello client");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
--结束END--
本文标题: java与as3的socket通信
本文链接: https://www.lsjlt.com/news/184467.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
一口价域名售卖能注册吗?域名是网站的标识,简短且易于记忆,为在线用户提供了访问我们网站的简单路径。一口价是在域名交易中一种常见的模式,而这种通常是针对已经被注册的域名转售给其他人的一种方式。
一口价域名买卖的过程通常包括以下几个步骤:
1.寻找:买家需要在域名售卖平台上找到心仪的一口价域名。平台通常会为每个可售的域名提供详细的描述,包括价格、年龄、流
443px" 443px) https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294.jpg https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294-768x413.jpg 域名售卖 域名一口价售卖 游戏音频 赋值/切片 框架优势 评估指南 项目规模
0