| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 565 人关注过本帖
标题:socket方面的东西
只看楼主 加入收藏
知为
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2005-10-21
收藏
 问题点数:0 回复次数:4 
socket方面的东西

import java.net.*;
import java.io.*;

public class Homework9_server
{
public static void main(String[] args)
{
try
{
System.out.println("server");
ServerSocket ss=new ServerSocket(6000);
Socket s=ss.accept();
InputStream is=s.getInputStream();
OutputStream os=s.getOutputStream();
byte[] buf=new byte[100];
int len=is.read(buf);
String str=new String(buf,0,len);
System.out.println("从客户那里得到: "+str);

if(str.equals("hollo server"))
os.write("what's your name".getBytes());
Thread.sleep(1000);
byte[] buf1=new byte[100];
int len1=is.read(buf1);
System.out.println(len1);
String str1=new String(buf1,0,len1);
File f=new File("answers.txt");
RandomAccessFile raf=new RandomAccessFile(f,"r");
String str2=raf.readLine();
if(str2.startsWith("client_name")&&str2.endsWith(str1))System.out.println("ok");

os.close();
is.close();
ss.close();
s.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}

}
}
import java.net.*;
import java.io.*;

public class Homework9_client
{
public static void main(String[] args)
{
System.out.println("client");
try
{
Socket s=new Socket(InetAddress.getByName(null),6000);
OutputStream os=s.getOutputStream();
InputStream is=s.getInputStream();

os.write("hollo server".getBytes());

byte[] buf=new byte[100];
int len=is.read(buf);
is.read(buf);
String str=new String(buf,0,len);
System.out.println("从服务器获得: "+str);//就是这里过去不

Thread.sleep(1000);
if(str.equals("what's your name"))
{
File f=new File("questions.txt");
RandomAccessFile raf=new RandomAccessFile(f,"r");
String temp;
String[] templine={"1","2","3"};
while((temp=raf.readLine())!=null)
{
templine=temp.split(" ");
if(templine[0].equals("student_name"))
os.write(templine[2].getBytes());
}
}
os.close();
is.close();
s.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}

}
}
里面有一个文件流
流内容大家可能根据程序能看出来
长是有点长
可是为什么传不过去呢
这东西刚学
不太懂
挺幼稚的

搜索更多相关主题的帖子: socket String java import str 
2006-05-27 21:57
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
在IO里在,读这个动作是阻塞的动作,所以你的程序才会卡在那里不会动
要解决这个办法就必须把读和写的动作搞清楚,先写了才能读,否则的话,就永远卡在那里了

可惜不是你,陪我到最后
2006-05-28 11:07
知为
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2005-10-21
收藏
得分:0 

的确是卡住了

怎么做才能先写了才能读
你能给我略微改一下吗?


2006-05-28 11:21
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

连接上以后,先由客户端发一条消息给服务器端,服务器再根据消息不同回复不同的消息了
也就是说
服务器端一连就在那里等收消息,然后再回
客户端一加上就马上发条消息,然后再等着读


可惜不是你,陪我到最后
2006-05-28 11:23
知为
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2005-10-21
收藏
得分:0 
实在不好意思
我还是没解决这个阻塞问题
拜托你帮我改改代码吧?
我觉得我这输入输出关系没错啊?

2006-05-29 20:07
快速回复:socket方面的东西
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025021 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved