1. 请教一下用java和用C实现socket网络通信哪个效率更高高分求,在线等。
肯定C的效率高,java舍掉了一些效率,但是他的优点是跨平台。
2. java编写socket服务端有什么优缺点
根据异常提示:"Address already in use : JVM——Bind " 。地址已被绑定,你查看下是否有未关闭的端口9999已被占用,你应该运行过一次相同端口号的程序,但是未关闭。
3. java、c、c++、php或者其他编程语言,哪种语言做socket服务器端性能好。
服务器的核心一般都是C和汇编因为效率高~
外层封装看哪个支持的资料多用哪个
4. java socket多线程问题,我写了一个socket tcp服务端,高手来进来看下,谢啦。是关于多客户端并联的问题
不对,你应该单独写个一个处理线程类,如果需要的连接就new一下,因为每次new一下,专线程的名字都不一样,但属如果后期要用到销毁的时候,最好写一个hasMap存储这些线程,当下线时,就根据values来销毁或遍历一下hasMap,获取到线程的名字,然后就destroy();
韩顺平java视频教程里的qq项目里有详细的解说!
5. 编写高性能Java服务器,应该选用何种方案
所谓的高性能其实都是和业务紧密相关的,比如处理时间长短,长链接还是短链接,内连接的数量等。容
根据业务特性来选择是否用BIO或者NIO,比如NIO擅长处理的是海量连接。
另外java.util.concurrent的线程池模型还是java.nio中的Selector模型,这两者并不冲突,况且这两者解决的问题是不一样的。线程池模型解决的是连接创建的消耗问题,Selector模型解决的是IO复用等问题。。
6. 用java写一个socket的服务器在电脑上运行
理论上可以,同在一个局域网,
7. java Socket编程实现的最简单的多线程Web服务器
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Test {
public static void main(String[] args) throws Exception {
ServerSocket server = new ServerSocket(888);
while(true) {
Socket s = server.accept();
Processer p = new Processer(s);
Thread t = new Thread(p);
t.start();
}
}
}
class Processer implements Runnable {
private Socket socket;
public Processer(Socket s) {
// TODO Auto-generated constructor stub
this.socket = s;
}
@Override
public void run() {
try {
PrintWriter out=new PrintWriter(socket.getOutputStream(),true);
out.println("HTTP/1.0 200 OK");
out.println("Content-Type:text/html;charset=utf-8");
out.println();
out.println("<h1> Web服务器测试成功!</h1>");
out.close();
} catch(Exception ex) {
ex.printStackTrace();
} finally {
try {
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
8. 关于JAVA非阻塞SOCKET服务器写一个对战游戏服务器的实例。
直接用数组或者集合来保存。
服务端socket在线程中等待连接,一旦获取到连接就保存返回的socket句柄,启动一个新的线程来从socket中读取消息。
9. 求java写的多线程socket端口监听服务器端程序,要代界面的.
业务需要这么复杂吗???如果你要实现服务器和客户端都可以向对方发送消息,而不等待对方应答,只需要把InputStream和OutputStream分别放在两个不同线程里就行了,即是说把接收流与发送流分别用一个线程监听处理。如果要实现不分客户端服务器的话,用UDP通信即可
补充回答:如果不涉及到MIME,只是收发简单文本邮件。就会比较简单。因为就像你说的,smtp和pop3协议就是文本格式的。你用Socket建立连接后,就像读文件一样,一行一行的读数据,然后按照协议分析数据格式。例如如果开始时USER那么后面可能跟的就是用户等。
就是一个字符串解析和匹配的过程。网上好像有这类代码,自己找一个学习一下。我以前用C在68k上作过,不是很难。不过代码已经没有了。
你的是邮件客户端,功能类似于outlook,foxmail等,如果你能上网,就不需要邮件服务器,直接用自己的邮件账号来测试,例如如果你有一个sina的邮件账户,就可以从sina服务器收发邮件。
不过为了测试方便,还是上网去收一个邮件服务器把。例如foxmail server等。网上有教程,可以配置好的。
对于编程,既然要求用socket编写,那么就要熟悉java的socket编程,这部分倒是很简单。可能还需要看看多线程部分。
另外,你需要学习一下, smtp和pop3这两个网络协议的内容,因为你需要解析这两个协议。如果需要收发代附件的,还需要看mime的内容,不过估计不需要。
其实java有自己的类库javamail,可以实现手法邮件,功能很强大。不过既然要求必须用socket,那就不能这个了。
说的太罗嗦了。总结一下:
1)配置邮件服务器,搭建测试环境
2)熟悉java的socket编程、 Swing编程(编写界面)、多线程(选用)
3)熟悉smtp和pop3的内容(内容很多,了解基本的就可以)
网上应该有类似代码,可以用来参考。
10. java的客户端用的是Socket,服务器端用SocketChannel,这两种能实现通信么 说得比较白,望理解
Socket 和ServerSocke 是一对 他们是java.net下面实现socket通信的类
SocketChannel 和ServerSocketChannel是一对 他们是java.nio下面实现通信的类 支持异步通信
服务器回必须先建答立ServerSocket或者ServerSocketChannel 来等待客户端的连接
客户端必须建立相对应的Socket或者SocketChannel来与服务器建立连接
服务器接受到客户端的连接受,再生成一个Socket或者SocketChannel与此客户端通信
不过Socket和SocketChannel可以通过 socket.channel() SocketChannel.socket() 方法相互转换
同理ServerSocket 和ServerSocketChannel 也可以相互转换