<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.visual-prolog.com/index.php?action=history&amp;feed=atom&amp;title=3rd%3ASCS_-_Simple_Client_Server</id>
	<title>3rd:SCS - Simple Client Server - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.visual-prolog.com/index.php?action=history&amp;feed=atom&amp;title=3rd%3ASCS_-_Simple_Client_Server"/>
	<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=3rd:SCS_-_Simple_Client_Server&amp;action=history"/>
	<updated>2026-04-21T18:02:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=3rd:SCS_-_Simple_Client_Server&amp;diff=855&amp;oldid=prev</id>
		<title>Thomas Linder Puls: copied from forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=3rd:SCS_-_Simple_Client_Server&amp;diff=855&amp;oldid=prev"/>
		<updated>2008-01-08T22:37:02Z</updated>

		<summary type="html">&lt;p&gt;copied from forum&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This package is designed to help you build client and multi-client servers in Visual Prolog CE 7. &lt;br /&gt;
&lt;br /&gt;
SCS (Simple Client Server) uses a native binding to a subset of winsock2 functions and does not use sockbind or mgslayer (at all). &lt;br /&gt;
&lt;br /&gt;
It is designed with multithreading in mind : a server (instance of scsServer class) waits for incoming connections in a thread. A connection is managed by a callback predicate that you provide. An instance of scsClient can then be used to communicate with the client. &lt;br /&gt;
&lt;br /&gt;
The sending of data is a blocking process, but the reception is performed by a listening thread that triggers another callback predicate, passing the data received as argument. &lt;br /&gt;
&lt;br /&gt;
The design is very similar to a standard client/server scheme. &lt;br /&gt;
&lt;br /&gt;
Two different modes are supported : &lt;br /&gt;
&lt;br /&gt;
In the nibble_mode, the reception callback predicate is evaluated as soon as data is available. This doesn&amp;#039;t mean you get the data that has been sent : you get pieces of data as soon as it arrives. &lt;br /&gt;
&lt;br /&gt;
In the message_mode (default mode), SCS adds a data management system that only triggers the reception callback when the data reception is complete - this means that you do not have to take care of the rebuilding of complete data : SCS does it for you. &lt;br /&gt;
&lt;br /&gt;
The &amp;#039;transmitFile&amp;#039; function of winsock2 is supported. This means that you can even send files (see msdn for transmitFile in winsock2). &lt;br /&gt;
&lt;br /&gt;
A tutorial can be found there : &lt;br /&gt;
&lt;br /&gt;
http://www.arsaniit.com/vp_tools/scs.htm &lt;br /&gt;
&lt;br /&gt;
You&amp;#039;ll also find the documentation of the classes in a prodoc format (ie the Visual Prolog Help) at the same page. &lt;br /&gt;
&lt;br /&gt;
The demo project shows how to build a time server (that sends the server&amp;#039;s time to a client and closes the cnx) and a reverse server (that sends back reversed string until it receives the string &amp;#039;end&amp;#039;). &lt;br /&gt;
&lt;br /&gt;
The demo project features a simple client featuring a console with sending/receving monitoring. &lt;br /&gt;
&lt;br /&gt;
The download link : http://www.arsaniit.com/vp_tools/download/scs_17.zip&lt;br /&gt;
&lt;br /&gt;
:[[Image:3rd-SCS-Simple Client Server.png]]&lt;/div&gt;</summary>
		<author><name>Thomas Linder Puls</name></author>
	</entry>
</feed>