没有什么复杂的,我用Java做服务端,起一个监听。然后客户端用C写一个,连接指定的端口,一发一收,没什么特别的地方。给你一段我编着玩的代码: Java ---------------------------------------- package pkserver; 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"); 发送数据。 明白了把 |
|