假设socket设置字体传输到客户端
1,开始希望使用对象传递:创建3个类,Client,Server,SetFont,最后一个类是用来设置字体。在Client设置字体时产生一个对象,调用对象的方法设置字体;在Server类中接收Client类传过来的设置字体对象。这个思路的关键是使用socket传递对象。我使用的是函数返回对象,没有实现。
if (e.getSource() == ft) {
setfont = new SetFont(this, "字体设置", true);
setfont.setVisible(true);
ta.setFont(setfont.myFont);
tf.setFont(setfont.myFont);
//client端部分代码
if (e.getSource() == ft) {
setfont = new SetFont(this, "字体设置", true);
setfont.setVisible(true);
ta.setFont(setfont.myFont);
tf.setFont(setfont.myFont);
//使用函数返回对象
public SetFont getSetFont() {
return setfont;
}
//server端实现代码
client A = new client();
A.setVisible(false);
SetFont BB=A.getSetFont();
ta.setFont(BB.myFont);
ta.setText(ta.getText() + str + "\n");
2,可以使用标签,在传输的文字头部使用一个flag标记颜色,在接收端读取flag并根据flag的值设置相应的颜色
(转载代码)
String []s1={"黑色","红色","蓝色"};
cb1.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
if(cb1.getSelectedItem().equals("红色")){
flag1=1;
}else{
if(cb1.getSelectedItem().equals("蓝色")){
flag1=2;
}else{
flag1=0;
}
}
}
});
b3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
e.getSource();
if(flag2==1){
try{
LineNumberReader br=new LineNumberReader(new FileReader("123.txt"));
String str2;
String str3="";
for(str2=br.readLine();str2!=null;str2=br.readLine()){
str3=str3+"\n"+str2;
}
DatagramSocket dataSocket = new DatagramSocket(10000);
byte [] sendDataByte = new byte[1024];
sendDataByte=(("r"+str3).getBytes());
DatagramPacket dataPacket = new DatagramPacket(sendDataByte, sendDataByte.length,
InetAddress.getByName("localhost"), 10002);
dataSocket.send(dataPacket);
dataSocket.close();
//System.out.print(str3);
}catch(IOException e2){
e2.printStackTrace();
}
flag2=0;
}else{
try {
DatagramSocket dataSocket = new DatagramSocket(10000);
byte [] sendDataByte = new byte[1024];
if(flag1==0){
sendDataByte =("abc"+tb.getText()).getBytes();
insertDocument("你:"+tb.getText()+"\n", Color.BLACK);
}
else
if(flag1==1){
sendDataByte =("bcd"+tb.getText()).getBytes();
insertDocument("你:"+tb.getText()+"\n", Color.RED);
}
else{
sendDataByte =("def"+tb.getText()).getBytes();
insertDocument("你:"+tb.getText()+"\n", Color.BLUE);
}
DatagramPacket dataPacket = new DatagramPacket(sendDataByte, sendDataByte.length,
InetAddress.getByName("localhost"), 10002);
dataSocket.send(dataPacket);
dataSocket.close();
} catch (Exception er) {
er.printStackTrace();
}
tb.setText("");
}
}
});
JP2.add(b3);
c.add(JP2);
app.setVisible(true);
try {
DatagramSocket dataSocket = new DatagramSocket(10001);
byte []receiveByte = new byte[1024];
DatagramPacket dataPacket = new DatagramPacket(receiveByte, receiveByte.length);
int i=0;
while (i == 0)
{
dataSocket.receive(dataPacket);
i = dataPacket.getLength();
if (i > 0) {
String receiveStr = null;
String s=null;
String ss=null;
receiveStr = new String(receiveByte, 3, dataPacket.getLength()-3);
s= new String(receiveByte, 0, 3);
ss=new String(receiveByte, 0, 1);
if(ss.equals("r")){
try{
String h=new String(receiveByte, 1, dataPacket.getLength()-1);
FileWriter f=new FileWriter("asd.txt");
f.write(h);
f.close();
}
catch(IOException e1){
e1.printStackTrace();
}
}else{
if(s.equals("abc"))
insertDocument("朋友:"+receiveStr+"\n",Color.BLACK);
else
if(s.equals("bcd"))
insertDocument("朋友:"+receiveStr+"\n",Color.RED);
else
insertDocument("朋友:"+receiveStr+"\n",Color.BLUE);
i = 0;
}
}
if(i==-1)
dataSocket.close();
}
}
catch (Exception e) {
e.printStackTrace();
}
}
3,将信息进行RTF编码进行读写
分享到:
相关推荐
java socket使用加密协议传输对象
java socket传输demo 客户端和服务器端传输demojava socket传输demo 客户端和服务器端传输demo
Java Socket传输图片源代码;短小精悍,适合初学者学习参考使用
使用Socket传输音频,使用Socket传输音频
采用java socket编程,利用Internet传输各种类型的文件,在传输过程中数据完整,传输速度快等优点。
使用Socket传输视频
Java基于Socket文件传输示例Java基于Socket文件传输示例Java基于Socket文件传输示例
基于java nio socket 的文件传输例程
java socket 大文件传输,快速传输, 数据包的分片,组装,涉及UDP,TCP传输技术,NIO非阻塞等等,适合对socket编程进一步学习的同学
Socket类是负责处理客户端通信的Java类。本文主要是介绍java使用Socket类接收和发送数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
用JAVA实现的文件上传,控制台输入,保存到数据库
此代码为 tcp 协议传输 java socket 图片
java-socket传输文件-图片-源码 我试过本地和局域网传输文件。 按理说,网络传输也是可以的。 效率可以。还可以写成线程操作
socket 文件传输编程 java 多线程
实现了基于JAVA技术的网络通信应用,本例是文件的传输,读者可触傍通,实现更复杂的功能
计算机网络 作业实例 Java socket编程 文件传输
可以实现文件夹的传输,暂时可以传输文本,还在改进中
Java基于Socket文件传输示例:服务器端和客户端
使用Socket传输图片,使用Socket传输图片