java开发的socket与C开发的socket通信问题 可以的,只能有些烦人的东西:协议是一样的,但在处理方式上却有不一样的地方;在两端的接收过程中你会明白的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼上的可否说的具体点,哪些需要注意的地方? 没有什么复杂的,我用Java做服务端,起一个监听。然后客户端用C写一个,连接指定的端口,一发一收,没什么特别的地方。给你一段我编着玩的代码:Java----------------------------------------package pkserver;import java.net.*;import java.io.*;import java.util.*;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: </p> * @author unascribed * @version 1.0 */public class PKServer { public PKServer() { try { ServerSocket ss = new ServerSocket(3000); System.out.println("Waiting for conncetion..."); Socket s = ss.accept(); System.out.println("Accept connection!"); InputStream in = s.getInputStream(); OutputStream out = s.getOutputStream(); byte[] inData = new byte[100]; in.read(inData); System.out.println("Recv: "); for(int i=0; i<inData.length; i++) { System.out.print(inData[i]); } } catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args) { PKServer pkServer = new PKServer(); }}C(我是用VC做的,比较长节选了一些关键的)------------------------------------------------------------------ WSADATA wsd; SOCKET sConnect; LONG lPort = 3000; char hostip[12] = "172.20.54.9"; //unsigned char hostip[20] = ""; //memcpy( hostip, strIp, sizeof(strIp)); struct sockaddr_in ServerHostAddr; //Server Address... if (WSAStartup( MAKEWORD(2, 2), &wsd ) != 0) AfxMessageBox("Failed INIT \n"); sConnect = socket( AF_INET, SOCK_STREAM, 0 ); ServerHostAddr.sin_family = AF_INET; ServerHostAddr.sin_port = htons( (u_short)lPort ); ServerHostAddr.sin_addr.s_addr = inet_addr( hostip ); if( connect( sConnect, (struct sockaddr*)&ServerHostAddr, sizeof(ServerHostAddr) ) == SOCKET_ERROR) AfxMessageBox("Connect Failed\n");这部分建立连接,够烦的把 char data[10] = "54321"; if( send(sConnect, data, sizeof(data), 0 ) == SOCKET_ERROR ) AfxMessageBox("Message Sending Error..."); else AfxMessageBox("Send Succ"); 发送数据。明白了把 list多线程修改同步问题 java html显示applet控件问题 时间空间复杂度问题 求详解?? 如何使java程序具有可配置性 SimpleDateFormat 关于socket程序运行时候出这个错,怎么解决 有关File的问题 我想问下如果求前几天的日期? 我的application中如何显示html页面 旧事重提,关于环境问题,。。。 谁能帮我解释一下此行代码的意思? 急:下面代码为什么不能运行,为什么?
----------------------------------------
package pkserver;import java.net.*;
import java.io.*;
import java.util.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/public class PKServer { public PKServer() {
try {
ServerSocket ss = new ServerSocket(3000);
System.out.println("Waiting for conncetion...");
Socket s = ss.accept();
System.out.println("Accept connection!");
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream(); byte[] inData = new byte[100];
in.read(inData);
System.out.println("Recv: ");
for(int i=0; i<inData.length; i++) {
System.out.print(inData[i]);
}
}
catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
PKServer pkServer = new PKServer();
}
}C(我是用VC做的,比较长节选了一些关键的)
------------------------------------------------------------------
WSADATA wsd;
SOCKET sConnect;
LONG lPort = 3000; char hostip[12] = "172.20.54.9";
//unsigned char hostip[20] = "";
//memcpy( hostip, strIp, sizeof(strIp)); struct sockaddr_in ServerHostAddr; //Server Address...
if (WSAStartup( MAKEWORD(2, 2), &wsd ) != 0)
AfxMessageBox("Failed INIT \n");
sConnect = socket( AF_INET, SOCK_STREAM, 0 );
ServerHostAddr.sin_family = AF_INET;
ServerHostAddr.sin_port = htons( (u_short)lPort );
ServerHostAddr.sin_addr.s_addr = inet_addr( hostip );
if( connect( sConnect, (struct sockaddr*)&ServerHostAddr, sizeof(ServerHostAddr) ) == SOCKET_ERROR)
AfxMessageBox("Connect Failed\n");这部分建立连接,够烦的把 char data[10] = "54321";
if( send(sConnect, data, sizeof(data), 0 ) == SOCKET_ERROR )
AfxMessageBox("Message Sending Error...");
else
AfxMessageBox("Send Succ");
发送数据。
明白了把